程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server頁類型詳解

SQL Server頁類型詳解

編輯:關於SqlServer

SQL Server中包含多種不同類型的頁,來滿足數據存儲的需求。不管是什麼類型的頁,它們的存儲結構都是相同的。每個數據文件都包含相當數量的由8KB組成的頁,即每頁有8192bytes可用,每頁都有96byte用於頁頭的存儲,剩下的空間

才用來存儲實際的數據,在頁的最後是數據行偏移數組,也可以叫“頁槽”數組,我們可以把一個頁看做是有一個個方格的書櫥,哪行數據占用了哪個槽,都在頁尾的位置進行標示,並且頁尾數組的寫入順序是倒敘的,這樣就可以有效的利用頁空間。

由此可以預見,頁面上的“槽”並不一定是有序存放的,當有新的ID進來,並且該ID位於該頁的最大ID和最小ID之間時(假設是以ID進行排序的葉子頁),那麼該ID數據行則直接插入到已經存在的數據行的後面即可,當有查詢需要檢索該ID所在的行時,

數據庫引擎從索引頁找到該“葉子”頁,將該頁全部加載到內存中,通過頁尾的行偏移數組找到對應的行。頁尾數組的記錄大小存儲在頁頭裡,數組裡面每一個關於“頁槽”的記錄占用空間為2bytes。

據我所知,SQL Server數據文件共有14種頁類型:

類型1——數據頁(Data Page):

堆中的數據頁

聚集索引中的“葉子”頁

在數據文件中的位置是隨機的

DBCC PAGE 中m_type=1

類型2——索引頁(Index Page):

非聚集索引

非“葉子”級聚集索引

在數據文件中的位置是隨機的

DBCC PAGE 中m_type=2

類型3——文本混合頁(Text Mixed Page):

較短長度的LOB數據類型,多種類型,多行存儲

在數據文件中的位置是隨機的

DBCC PAGE 中m_type=3

類型4——文本頁(Text Tree Page):

存儲單個LOB行

在數據文件中的位置是隨機的

DBCC PAGE 中m_type=4

類型5——排序頁(Sort Page):

進行排序操作時的臨時頁

常見於TempDB中,在用戶數據中進行“ONLINE"操作時也可見(例如:聯機創建索引未指定SORT_IN_TEMPDB選項時)

在數據文件中的位置是隨機的

DBCC PAGE 中m_type=19

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved