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

首頁 數(shù)據(jù)庫 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é)點從頭到尾的訪問。假設(shè)我們的索引是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ù)準(zhǔn)備

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

  View Code

  --準(zhǔn)備測試數(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ù)準(zhǔn)備完畢--------------------------------

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

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

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

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

  2.3 table scan

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(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ū)動的應(yīng)用程序,用于創(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:如何控制哪些應(yīng)用程序可以訪問您的照片 iOS 17:如何控制哪些應(yīng)用程序可以訪問您的照片 Sep 13, 2023 pm 09:09 PM

在iOS17中,Apple可以更好地控制應(yīng)用程序可以看到的照片內(nèi)容。繼續(xù)閱讀,了解如何按應(yīng)用管理應(yīng)用訪問權(quán)限。在iOS中,Apple的應(yīng)用內(nèi)照片選取器可讓您與應(yīng)用共享特定照片,而照片圖庫的其余部分則保持私密。應(yīng)用必須請求訪問您的整個照片圖庫,您可以選擇授予應(yīng)用以下訪問權(quán)限:受限訪問–應(yīng)用程序只能看到您可以選擇的圖像,您可以隨時在應(yīng)用程序中或通過轉(zhuǎn)到“設(shè)置”>“隱私和安全”>“照片”來查看所選圖像。完全訪問權(quán)限–App可以查看照片

如何安裝、卸載、重置Windows服務(wù)器備份 如何安裝、卸載、重置Windows服務(wù)器備份 Mar 06, 2024 am 10:37 AM

WindowsServerBackup是WindowsServer操作系統(tǒng)自帶的一個功能,旨在幫助用戶保護重要數(shù)據(jù)和系統(tǒng)配置,并為中小型和企業(yè)級企業(yè)提供完整的備份和恢復(fù)解決方案。只有運行Server2022及更高版本的用戶才能使用這一功能。在本文中,我們將介紹如何安裝、卸載或重置WindowsServerBackup。如何重置Windows服務(wù)器備份如果您的服務(wù)器備份遇到問題,備份所需時間過長,或無法訪問已存儲的文件,那么您可以考慮重新設(shè)置WindowsServer備份設(shè)置。要重置Windows

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

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

使用Python訪問各種音頻和視頻文件的元數(shù)據(jù) 使用Python訪問各種音頻和視頻文件的元數(shù)據(jù) Sep 05, 2023 am 11:41 AM

我們可以使用Mutagen和Python中的eyeD3模塊訪問音頻文件的元數(shù)據(jù)。對于視頻元數(shù)據(jù),我們可以使用電影和Python中的OpenCV庫。元數(shù)據(jù)是提供有關(guān)其他數(shù)據(jù)(例如音頻和視頻數(shù)據(jù))的信息的數(shù)據(jù)。音頻和視頻文件的元數(shù)據(jù)包括文件格式、文件分辨率、文件大小、持續(xù)時間、比特率等。通過訪問這些元數(shù)據(jù),我們可以更有效地管理媒體并分析元數(shù)據(jù)以獲得一些有用的信息。在本文中,我們將了解Python提供的一些用于訪問音頻和視頻文件元數(shù)據(jù)的庫或模塊。訪問音頻元數(shù)據(jù)一些用于訪問音頻文件元數(shù)據(jù)的庫是-使用誘變

如何在Java中訪問JsonNode的JSON字段、數(shù)組和嵌套對象? 如何在Java中訪問JsonNode的JSON字段、數(shù)組和嵌套對象? Aug 30, 2023 pm 11:05 PM

一個JsonNode是Jackson的JSON樹模型,它可以將JSON讀取為JsonNode實例,并將JsonNode寫入JSON。通過創(chuàng)建ObjectMapper實例并調(diào)用readValue()方法,我們可以使用Jackson將JSON讀取為JsonNode。我們可以使用JsonNode類的get()方法訪問字段、數(shù)組或嵌套對象。我們可以使用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ù)獲取當(dāng)前的時間:now:=time.Now()fmt.Println(now)輸出:2019-06-131

win10家庭版共享文件夾無法訪問怎么辦 win10家庭版共享文件夾無法訪問怎么辦 Jan 11, 2024 pm 07:36 PM

在家庭或企業(yè)網(wǎng)絡(luò)環(huán)境下,共享文件夾確實是一項極其實用的功能,它能讓您輕松地將文件夾分享給其他用戶,從而便于文件的傳輸與分享。win10家庭版共享文件夾無法訪問解決方法:解決方案一:檢查網(wǎng)絡(luò)連接和用戶權(quán)限在嘗試使用Win10共享文件夾時,我們首先需要確認(rèn)網(wǎng)絡(luò)連接及用戶權(quán)限是否正常。若網(wǎng)絡(luò)連接存在故障或用戶未獲得訪問共享文件夾的權(quán)限,便可能導(dǎo)致無法訪問的現(xiàn)象。1、首先請確保網(wǎng)絡(luò)連接順暢,以便計算機與共享文件夾所在的計算機在同一局域網(wǎng)中,能夠正常進行通信。2、其次檢查用戶權(quán)限,確認(rèn)當(dāng)前用戶對于共享文件

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

如何修改nginx默認(rèn)的名稱,可以稍微的偽裝一下,也可以裝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