国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 資料庫 mysql教程 Sql Server中的表訪問方式Table Scan, Index Scan, Index Seek

Sql Server中的表訪問方式Table Scan, Index Scan, Index Seek

Jun 07, 2016 pm 04:20 PM
scan server table 方式 訪問

Sql Server中的表訪問方式Table Scan, Index Scan, Index Seek 0.參考文獻 oracle表訪問方式 Index Seek和Index Scan的區(qū)別以及適用情況 1.oracle中的表訪問方式 在oracle中有表訪問方式的說法,訪問表中的數(shù)據(jù)主要通過三種方式進行訪問: 全表掃描(full tab

?  Sql Server中的表訪問方式Table Scan, Index Scan, Index Seek

  0.參考文獻

  oracle表訪問方式

  Index Seek和Index Scan的區(qū)別以及適用情況

  1.oracle中的表訪問方式

  在oracle中有表訪問方式的說法,訪問表中的數(shù)據(jù)主要通過三種方式進行訪問:

  全表掃描(full table scan),直接訪問數(shù)據(jù)頁,查找滿足條件的數(shù)據(jù)

  通過rowid掃描(table access by rowid),如果知道數(shù)據(jù)的rowid,那么直接通過rowid進行查找

  索引掃描(index scan),如果一個表創(chuàng)建了索引,那么可以通過索引來找出我們想要的數(shù)據(jù)在表中的存放位置,也就是rowid,通過返回rowid然后用rowid來進行訪問具體數(shù)據(jù)。

  而索引掃描中又可分為索引全掃描(index full scan)、索引范圍掃描(index range scan)和索引唯一掃描(index unique scan)等。

  2.sql server中clustered index scan,table scan,index scan

  在sqlserver中也有類似的內(nèi)容,這里就要將的是table scan,index scan以及index seek.

  A table scan is where the table is processed row by row from beginning to end.

  An index scan is where the index is processed row by row from beginning to end.

  If the index is a clustered index then an index scan is really a table scan.

  總結(jié):在sql server中,對表中數(shù)據(jù)從頭到尾一行一行的進行出來就是表掃描。這里的處理我們可以理解為sql中where子句的條件判斷。我們需要遍歷表中的每一行,判斷是否滿足where條件。最簡單的table scan是select * from table。

  索引掃描就是對索引中的每個節(jié)點從頭到尾的訪問。假設我們的索引是B樹結(jié)構(gòu)的,那么index scan就是訪問B樹中的每一個節(jié)點。

  假如索引是聚集索引,那么B樹索引的葉子節(jié)點保存的是數(shù)據(jù)頁中的實際數(shù)據(jù)。假如索引是非聚集索引,那么B樹葉子節(jié)點保存的是指向數(shù)據(jù)頁的指針。

  (ps:以下2.1-2.6于2012-9-4補充)

  2.1實驗數(shù)據(jù)準備

  在介紹完clustered index scan,table scan和index scan以后,我們將通過實驗來表述會在什么情況下使用這些表掃描方式。我們將使用AdventureWorks2008R2這個sample database進行實驗,首先準備實驗數(shù)據(jù),TSQL如下所示:

  View Code

  --準備測試數(shù)據(jù)--------------------------------------------------

  use adventureworks2008R2

  go

  --如果表已存在,刪除

  drop table dbo.SalesOrderHeader_test

  go

  drop table dbo.SalesOrderDetail_test

  go

  --創(chuàng)建表

  select * into dbo.SalesOrderHeader_test

  from Sales.SalesOrderHeader

  go

  select * into dbo.SalesOrderDetail_test

  from Sales.SalesOrderDetail

  go

  --創(chuàng)建索引

  create clustered index SalesOrderHeader_test_CL

  on dbo.SalesOrderHeader_test (SalesOrderID)

  go

  create index SalesOrderDetail_test_NCL

  on dbo.SalesOrderDetail_test (SalesOrderID)

  go

  --select * from dbo.SalesOrderDetail_test

  --select * from dbo.SalesOrderHeader_test

  declare @i int

  set @i = 1

  while @i

  begin

  insert into dbo.SalesOrderHeader_test

  (RevisionNumber, OrderDate, DueDate,

  ShipDate,Status, OnlineOrderFlag, SalesOrderNumber,PurchaseOrderNumber,

  AccountNumber, CustomerID, SalesPersonID, TerritoryID,

  BillToAddressID, ShipToAddressID, ShipMethodID, CreditCardID,

  CreditCardApprovalCode, CurrencyRateID, SubTotal,TaxAmt,

  Freight,TotalDue, Comment,rowguid,ModifiedDate)

  select RevisionNumber, OrderDate, DueDate,

  ShipDate,Status, OnlineOrderFlag, SalesOrderNumber,PurchaseOrderNumber,

  AccountNumber, CustomerID,SalesPersonID, TerritoryID,

  BillToAddressID, ShipToAddressID, ShipMethodID, CreditCardID,

  CreditCardApprovalCode, CurrencyRateID, SubTotal,TaxAmt,

  Freight,TotalDue, Comment,rowguid,ModifiedDate

  from dbo.SalesOrderHeader_test

  where SalesOrderID = 75123

  insert into dbo.SalesOrderDetail_test

  (SalesOrderID, CarrierTrackingNumber, OrderQty, ProductID,

  SpecialOfferID,UnitPrice,UnitPriceDiscount,LineTotal,

  rowguid,ModifiedDate)

  select 75123+@i, CarrierTrackingNumber, OrderQty, ProductID,

  SpecialOfferID,UnitPrice,UnitPriceDiscount,LineTotal,

  rowguid, getdate()

  from Sales.SalesOrderDetail

  set @i = @i +1

  end

  go

  --數(shù)據(jù)準備完畢--------------------------------

  2.2實驗數(shù)據(jù)說明:

  dbo.SalesOrderHeader_test里存放的是每一張訂單的頭信息,包括訂單創(chuàng)建日期、客戶編號、合同編號、銷售員編號等,每個訂單都有一個單獨的訂單號。在訂單號這個字段上,有一個聚集索引。

  dbo.SalesOrderDetail_test里存放的是訂單的詳細內(nèi)容。一張訂單可以銷售多個產(chǎn)品給同一個客戶,所以dbo.SalesOrderHeader_test和dbo.SalesOrderDetail_test是一對多的關(guān)系。每條詳細內(nèi)容包括它所屬的訂單編號,它自己在表格里的唯一編號(SalesOrderDetailID)、產(chǎn)品編號、單價,以及銷售數(shù)量等。在這里,先只在SalesOrderID上建立一個非聚集索引。create index默認創(chuàng)建的就是非聚集索引。

  按照AdventureWorks里原先的數(shù)據(jù),dbo.SalesOrderHeader_test里有3萬多條訂單信息,dbo.SalesOrderDetail里有12萬多條訂單詳細記錄,基本上一條訂單有3~5條詳細記錄。這是一個正常的分布。為了使數(shù)據(jù)分布不均勻,我們再在dbo.SalesOrderHeader_test里加入9條訂單記錄,它們的編號是從75124到75132。這是9張?zhí)厥獾挠唵?,每張?2萬多條詳細記錄。也就是說,dbo.SalesOrderDetail_test里會有90%的數(shù)據(jù)屬于這9張訂單。主要是使用“select 75123+@i...”來搜索出Sales.SalesOrderDetail中的所有記錄插入到dbo.SalesOrderDetail。一共執(zhí)行9次。

  2.3 table scan

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

iOS 17:如何控制哪些應用程式可以存取您的照片 iOS 17:如何控制哪些應用程式可以存取您的照片 Sep 13, 2023 pm 09:09 PM

在iOS17中,Apple可以更好地控制應用程式可以看到的照片內(nèi)容。繼續(xù)閱讀,了解如何按應用程式管理應用程式存取權(quán)限。在iOS中,Apple的應用程式內(nèi)照片選取器可讓您與應用程式分享特定照片,而照片圖庫的其餘部分則保持私密。應用程式必須要求存取您的整個照片圖庫,您可以選擇授予應用程式以下存取權(quán)限:受限存取–應用程式只能看到您可以選擇的圖像,您可以隨時在應用程式中或透過前往「設定」&gt ;“隱私和安全性”>“照片”來查看所選圖像。完全存取權(quán)限–App可以查看照片

如何安裝、解除安裝、重設Windows伺服器備份 如何安裝、解除安裝、重設Windows伺服器備份 Mar 06, 2024 am 10:37 AM

WindowsServerBackup是WindowsServer作業(yè)系統(tǒng)自帶的功能,旨在協(xié)助使用者保護重要資料和系統(tǒng)配置,並為中小型和企業(yè)級企業(yè)提供完整的備份和復原解決方案。只有執(zhí)行Server2022及更高版本的使用者才能使用此功能。在本文中,我們將介紹如何安裝、解除安裝或重設WindowsServerBackup。如何重置Windows伺服器備份如果您的伺服器備份遇到問題,備份所需時間過長,或無法存取已儲存的文件,那麼您可以考慮重新設定WindowsServer備份設定。要重設Windows

解決Tomcat部署war包後無法存取的問題的方法 解決Tomcat部署war包後無法存取的問題的方法 Jan 13, 2024 pm 12:07 PM

如何解決Tomcat部署war包後無法成功存取的困擾,需要具體程式碼範例Tomcat作為一個廣泛使用的JavaWeb伺服器,允許開發(fā)人員將自己開發(fā)的網(wǎng)路應用程式打包為war檔進行部署。然而,有時我們可能會遇到部署war包後無法成功存取的問題,這可能是由於配置不正確或其他原因引起的。在本文中,我們將提供一些解決這個困擾的具體程式碼範例。一、檢查Tomcat服務

使用Python存取各種音訊和視訊檔案的元數(shù)據(jù) 使用Python存取各種音訊和視訊檔案的元數(shù)據(jù) Sep 05, 2023 am 11:41 AM

我們可以使用Mutagen和Python中的eyeD3模組存取音訊檔案的元資料。對於視訊元數(shù)據(jù),我們可以使用影片和Python中的OpenCV庫。元資料是提供有關(guān)其他資料(例如音訊和視訊資料)的資訊的資料。音訊和視訊檔案的元資料包括檔案格式、檔案解析度、檔案大小、持續(xù)時間、位元率等。透過存取這些元數(shù)據(jù),我們可以更有效地管理媒體並分析元數(shù)據(jù)以獲得一些有用的信息。在本文中,我們將了解Python提供的一些用於存取音訊和視訊檔案元資料的庫或模組。存取音頻元資料一些用於存取音訊檔案元資料的庫是-使用誘變

如何在Java中存取JsonNode的JSON欄位、陣列和巢狀物件? 如何在Java中存取JsonNode的JSON欄位、陣列和巢狀物件? Aug 30, 2023 pm 11:05 PM

一個JsonNode是Jackson的JSON樹模型,它可以將JSON讀取為JsonNode實例,並將JsonNode寫入JSON。透過建立ObjectMapper實例並呼叫readValue()方法,我們可以使用Jackson將JSON讀取為JsonNode。我們可以使用JsonNode類別的get()方法來存取欄位、陣列或巢狀物件。我們可以使用asText()方法傳回有效的字串表示,並使用JsonNode類別的asInt()方法將節(jié)點的值轉(zhuǎn)換為Javaint。在下面的範例中,我們可以訪問Json

Go 語言的時間處理方式有哪些? Go 語言的時間處理方式有哪些? Jun 10, 2023 pm 09:42 PM

Go語言作為一個現(xiàn)代化的程式語言,時間在開發(fā)中佔有很重要的地位。 Go語言提供了一些內(nèi)建的時間函數(shù)和結(jié)構(gòu)體,使得時間的處理變得更加便捷。在本篇文章中,將會介紹一些Go語言常用的時間處理方式。 time.Now()我們可以使用time.Now()函數(shù)取得目前的時間:now:=time.Now()fmt.Println(now)輸出:2019-06-131

win10家庭版共享資料夾無法存取怎麼辦 win10家庭版共享資料夾無法存取怎麼辦 Jan 11, 2024 pm 07:36 PM

在家庭或企業(yè)網(wǎng)路環(huán)境下,共用資料夾確實是一項極為實用的功能,它能讓您輕鬆地將資料夾分享給其他用戶,以便於檔案的傳輸與分享。 win10家庭版共用資料夾無法存取解決方法:解決方案一:檢查網(wǎng)路連線和使用者權(quán)限在嘗試使用Win10共用資料夾時,我們首先需要確認網(wǎng)路連線及使用者權(quán)限是否正常。若網(wǎng)路連線故障或使用者未獲得存取共用資料夾的權(quán)限,便可能導致無法存取的現(xiàn)象。 1.首先請確保網(wǎng)路連線順暢,以便電腦與共用資料夾所在的電腦在同一區(qū)域網(wǎng)路中,能夠正常進行通訊。 2、其次檢查使用者權(quán)限,確認目前使用者對於共享文件

怎麼修改Nginx版本名稱偽裝任意web server 怎麼修改Nginx版本名稱偽裝任意web server May 14, 2023 pm 09:19 PM

如何修改nginx預設的名稱,可以稍微的偽裝一下,也可以裝x一般來說修改3個位置,一個是nginx.h、另一個是ngx_http_header_filter_module.c、還有一個ngx_http_special_response.c。提示:一般修改都是在nginx編譯之前修改,修改完了之後需要重新編譯程式碼如下:scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

See all articles