SQL SERVER中的頁和區

lhrbest發表於2017-08-01
SQL Server中的頁和區




真題1、 SQL Server的兩種存儲結構是什麼?

答案:SQL Server的兩種儲存結構是頁與區間。

1頁:用於資料儲存的連續的磁碟空間塊,SQL Server中資料儲存的基本單位是頁,磁碟I/O操作在頁級執行頁的大小為8KB,每頁的開頭是96位元組的頁頭,用於儲存有關頁的系統資訊,包括頁碼、頁型別、頁的可用空間以及擁有該頁的物件的分配單元ID

2)區間:區是管理空間的基本單位,一個區是8個物理上連續的頁(即64KB)的集合,所有頁都儲存在區中。SQL Server有兩種型別的區:統一區和混合區。

統一區:由單個物件所有,區中的所有8頁只能由一個物件使用

混合區:最多可由8個物件共享。區中8頁中的每頁可以由不同物件所有,但是一頁總是隻能屬於一個物件。





官方文件:
https://msdn.microsoft.com/zh-cn/library/ms190969.aspx

頁和區


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

區是八個物理上連續的頁的集合,用來有效地管理頁。所有頁都儲存在區中。

在 SQL Server 中,頁的大小為 8 KB。這意味著 SQL Server 資料庫中每 MB 有 128 頁。每頁的開頭是 96 位元組的標頭,用於儲存有關頁的系統資訊。此資訊包括頁碼、頁型別、頁的可用空間以及擁有該頁的物件的分配單元 ID。

下表說明了 SQL Server 資料庫的資料檔案中所使用的頁型別。

頁型別

內容

Data

當 text in row 設定為 ON 時,包含除 textntextimagenvarchar(max)varchar(max)varbinary(max) 和 xml 資料之外的所有資料的資料行。

Index

索引條目。

Text/Image

大型物件資料型別:

  • text ntextimagenvarchar(max)varchar(max)varbinary(max) 和 xml 資料。

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

  • varcharnvarcharvarbinary 和 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 語句之後更改的區的資訊。

注意注意

日誌檔案不包含頁,而是包含一系列日誌記錄。

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

具有行偏移的 SQL Server 資料頁

大型行支援

行不能跨頁,但是行的部分可以移出行所在的頁,因此行實際可能非常大。頁的單個行中的最大資料量和開銷是 8,060 位元組 (8 KB)。但是,這不包括用 Text/Image 頁型別儲存的資料。包含 varcharnvarcharvarbinary 或 sql_variant 列的表不受此限制的約束。當表中的所有固定列和可變列的行的總大小超過限制的 8,060 位元組時,SQL Server 將從最大長度的列開始動態將一個或多個可變長度列移動到 ROW_OVERFLOW_DATA 分配單元中的頁。每當插入或更新操作將行的總大小增大到超過限制的 8,060 位元組時,將會執行此操作。將列移動到 ROW_OVERFLOW_DATA 分配單元中的頁後,將在 IN_ROW_DATA 分配單元中的原始頁上維護 24 位元組的指標。如果後續操作減小了行的大小,SQL Server 會動態將列移回到原始資料頁。有關詳細資訊,請參閱行溢位資料超過 8 KB

區是管理空間的基本單位。一個區是八個物理上連續的頁(即 64 KB)。這意味著 SQL Server 資料庫中每 MB 有 16 個區。

為了使空間分配更有效,SQL Server 不會將所有區分配給包含少量資料的表。SQL Server 有兩種型別的區:

  • 統一區,由單個物件所有。區中的所有 8 頁只能由所屬物件使用。

  • 混合區,最多可由八個物件共享。區中八頁的每頁可由不同的物件所有。

通常從混合區向新表或索引分配頁。當表或索引增長到 8 頁時,將變成使用統一區進行後續分配。如果對現有表建立索引,並且該表包含的行足以在索引中生成 8 頁,則對該索引的所有分配都使用統一區進行。

混合區和統一區







About Me

.............................................................................................................................................

● 本文整理自網路

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群:230161599     微信群:私聊

● 聯絡我請加QQ好友(646634621),註明新增緣由

● 於 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。

   小麥苗的微信公眾號          小麥苗的QQ群             小麥苗的微店

.............................................................................................................................................

SQL SERVER中的頁和區
DBA筆試面試講解
歡迎與我聯絡



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2142922/,如需轉載,請註明出處,否則將追究法律責任。

相關文章