国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server中關于數據頁的基本知識

2024-08-31 00:43:35
字體:
來源:轉載
供稿:網友

這里收集整理了一系列數據庫的索引知識,算是對索引知識的一個總結回顧吧。通過總結,你將發現自己以前很多很模糊的概念都清晰了很多。

不論是緩存的數據信息,還是物理保存的信息,他們的基本單位都是數據頁。所以理解數據頁是最最基礎的知識點,本文就介紹跟索引有關的數據頁的一些基礎知識。

數據頁的基礎知識

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。

在數據頁上,數據行緊接著標頭按順序放置。頁的末尾是行偏移表,對于頁中的每一行,每個行偏移表都包含一個條目。每個條目記錄對應行的第一個字節與頁首的距離。行偏移表中的條目的順序與頁中行的順序相反。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朝阳区| 麻栗坡县| 拉萨市| 北流市| 赣榆县| 淮滨县| 宁国市| 漾濞| 聂拉木县| 乌兰察布市| 香河县| 保靖县| 淮阳县| 大荔县| 木兰县| 东光县| 郯城县| 涞水县| 开封县| 阿克苏市| 鄂尔多斯市| 夏邑县| 上虞市| 青冈县| 扎赉特旗| 罗江县| 乳源| 金堂县| 济源市| 永昌县| 当阳市| 沙洋县| 广昌县| 重庆市| 三台县| 张家界市| 扎兰屯市| 高安市| 西充县| 大竹县| 康定县|