SQL Server索引基礎知識-系列

來源:互聯網
上載者:User

 SQL Server索引基礎知識(1)-記錄資料的基本格式
這裡收集整理了一系列資料庫的索引知識,算是對索引知識的一個總結回顧吧。通過總結,你將發現自己以前很多很模糊的概念都清晰了很多。不論是緩衝的資料資訊,還是物理儲存的資訊,他們的基本單位都是資料頁。所以理解資料頁是最最基礎的知識點,本文就介紹跟索引有關的資料頁的一些基礎知識。
  這裡收集整理了一系列資料庫的索引知識,算是對索引知識的一個總結回顧吧。通過總結,你將發現自己以前很多很模糊的概念都清晰了很多。

  不論是緩衝的資料資訊,還是物理儲存的資訊,他們的基本單位都是資料頁。所以理解資料頁是最最基礎的知識點,本文就介紹跟索引有關的資料頁的一些基礎知識。

  資料頁的基礎知識

  SQL Server 中資料存放區的基本單位是頁(Page)。資料庫中的資料檔案(.mdf 或 .ndf)分配的磁碟空間可以從邏輯上劃分成頁(從 0 到 n 連續編號)。磁碟 I/O 操作在頁級執行。也就是說,SQL Server 每次讀取或寫入資料的最少資料單位是資料頁。

  注意:記錄檔不是用這種方式儲存的,而是一系列日誌記錄。

  資料庫被分成邏輯頁面(每個頁面8KB),並且在每個檔案中,所有頁面都被連續地從0到x編號,其中x是由檔案的大小決定的。我們可以通過指定一個資料庫ID、一個檔案ID、一個頁碼來引用任何一個資料頁。當我們使用ALTER DATABASE命令來擴大一個檔案時,新的空間會被加到檔案的末尾。也就是說,我們所擴大檔案的新空間第一個資料頁的頁碼是x+1。當我們使用DBCC SHRINKDATABASE或DBCC SHRINKFILE命令來收縮一個資料庫時,將會從資料庫中頁碼最高的頁面(檔案末尾)開始移除頁面,並向頁碼較低的頁面移動。這保證了一個檔案中的頁碼總是連續的。

  在 SQL Server 中,頁的大小為 8 KB。這意味著 SQL Server 資料庫中每 MB 有 128 頁。依次類推。根據資料庫的檔案大小,我們可以算出資料庫有多少資料頁。

  SQL Server 2005 有以下幾種頁類型:

頁類型 內容
Data 當 text in row 設定為 ON 時,包含除 text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 資料之外的所有資料的資料行。
Index 索引條目。
Text/Image 大型物件資料類型:

text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 資料。

資料行超過 8 KB 時為可變長度資料類型列:

varchar、nvarchar、varbinary 和 sql_variant
 
Global Allocation Map、Shared Global Allocation Map 有關區是否分配的資訊。
Page Free Space 有關頁分配和頁的可用空間的資訊。
Index Allocation Map 有關每個配置單位中表或索引所使用的區的資訊。
Bulk Changed Map 有關每個配置單位中自最後一條 BACKUP LOG 語句之後的大容量操作所修改的區的資訊。
Differential Changed Map 有關每個配置單位中自最後一條 BACKUP DATABASE 語句之後更改的區的資訊。

  資料頁(Data 類型頁)的結構:

  每頁的開頭是 96 位元組的標題,用於儲存有關頁的系統資訊。此資訊包括頁碼、頁類型、頁的可用空間以及擁有該頁的對象的配置單位 ID。

  在資料頁上,資料行緊接著標題按順序放置。頁的末尾是行位移表,對於頁中的每一行,每個行位移表都包含一個條目。每個條目記錄對應行的第一個位元組與頁首的距離。行位移表中的條目的順序與頁中行的順序相反。

  
我認為不錯,所以轉載.更多在這裡:http://database.ctocio.com.cn/tips/146/7791146.shtml

  SQL Server索引基礎知識(2)-叢集索引,非叢集索引

  SQL Server索引基礎知識(3)-測試中常看指標和清除緩衝方法

  SQL Server索引基礎知識(4)-主鍵與叢集索引

  SQL Server索引基礎知識(5)-理解newid()和newsequentialid()

  SQL Server索引基礎知識(6)-索引的代價,使用情境

  SQL Server索引基礎知識(7)-Indexing for AND

  SQL Server索引基礎知識(8)-資料基本格式補充

  SQL Server索引基礎知識(9)-Indexing for OR

  SQL Server索引基礎知識(10)-Join時的三種演算法

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zhou__zhou/archive/2008/02/15/2097296.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.