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

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

SQL Server Page結構深入分析

2020-07-25 12:38:17
字體:
來源:轉載
供稿:網友

SQL Server存儲數據的基本單元是Page,每一個Page的大小是8KB,數據文件是由Page構成的。在同一個數據庫上,每一個Page都有一個唯一的資源標識,標識符由三部分組成:db_id,file_id,page_id,例如,15:1:8733,15是數據庫的ID,1是數據文件的ID,8733是Page的編號,Page的編號從0依次遞增。8個連續的Page組成一個區(Extent),數據文件中已分配(Allocated)的空間被分割成區的整數倍。一次磁盤IO操作作用于Page級別,而空間分配的最小單元是區。

Page是用于存儲數據的,不同類型的Page存儲的數據是不同的,Page的結構也是不同的。有些Page是用于存儲數據的,叫做Data Page,有些Page是用于存儲索引結構中的中間節點的,叫做Index Page,有些Page是SQL Server存儲引擎使用的,用于管理Page的,叫做系統頁。本文關注的是Data Page和Index Page,跟數據表有關。

日志文件沒有Page結構,它是由一系列的日志記錄構成的。

一,Page的結構

每一個Page都由 頭部(Header),內容(Content)和行偏移量(Offset)組成,頭部是在Page的開始處,占用96Bytes,用于存儲Page的編號,Page的類型,分配單元(Allocation Unit)等系統信息。注:在單個Page中最多存儲8060Bytes的數據。

The maximum amount of data and overhead that is contained in a single row on a page is 8,060 bytes (8 KB).

數據行存儲在Page Header之后,數據行在Page中的物理存儲是無序的,行的邏輯順序是由行偏移(Row Offset)確定的,行偏移存儲在Page的末尾,每一個行偏移是一個Slot,占用2B。行偏移連續排列在Page的末尾,稱作槽數組(Slot Array)。行偏移以倒序方式存儲行的偏移量,這意味著,從Page末尾向Page 開頭計數,第一行的偏移量存儲在Page的末尾Slot中,第二行的偏移量存儲在Page末尾的第二個Slot中。

二,查看Page頭部信息

Page頭部信息存儲的是Page的系統信息,可以使用非正式的命令來查看:

DBCC PAGE(['database name'|database id], file_id, page_number, print_option = [0|1|2|3] )

參數:file_id是數據庫文件的ID;page_number是Page在當前文件中的編號;print_option是指打印信息的詳細程度,默認值是0,只打印Page Header。

例如,查看資源標識符:15:1:8777733 Page的頭部信息:

dbcc traceon(3604)dbcc page(15,1,8777733)

在我的數據庫中,該Page的頭部信息(移除Buffer的數據)如下所示,

PAGE: (1:8777733)PAGE HEADER:Page @0x0000005188B02000m_pageId = (1:8777733)    m_headerVersion = 1     m_type = 1m_typeFlagBits = 0x0    m_level = 0       m_flagBits = 0x220m_objId (AllocUnitId.idObj) = 28503 m_indexId (AllocUnitId.idInd) = 256 Metadata: AllocUnitId = 72057595905900544        Metadata: PartitionId = 72057594059423744        Metadata: IndexId = 1Metadata: ObjectId = 1029578706  m_prevPage = (1:8777732)   m_nextPage = (1:8777734)pminlen = 16      m_slotCnt = 2      m_freeCnt = 4513m_freeData = 3675     m_reservedCnt = 0     m_lsn = (1212327:16:558)m_xactReserved = 0     m_xdesId = (0:799026688)   m_ghostRecCnt = 0m_tornBits = -1518328013   DB Frag ID = 1      Allocation StatusGAM (1:8690944) = ALLOCATED   SGAM (1:8690945) = NOT ALLOCATED PFS (1:8775480) = 0x40 ALLOCATED 0_PCT_FULL       DIFF (1:8690950) = CHANGEDML (1:8690951) = NOT MIN_LOGGED

Page 頭部中各個字段的含義:

1,Page的編號

m_pageId = (1:8777733),該Page所在的File ID 和Page ID

2,Page的類型

m_type = 1,Page的類型,常見的類型是數據頁和索引頁:

1

主站蜘蛛池模板: 页游| 息烽县| 汽车| 蚌埠市| 古交市| 滦南县| 光泽县| 宁河县| 长海县| 买车| 永年县| 合肥市| 彰化市| 溧水县| 澄城县| 临江市| 措勤县| 巴彦县| 玛沁县| 康平县| 图木舒克市| 翼城县| 林州市| 塘沽区| 祁门县| 时尚| 昌平区| 富阳市| 滕州市| 正阳县| 东山县| 兰考县| 沙河市| 黔江区| 高青县| 潼南县| 来安县| 如东县| 嘉禾县| 墨竹工卡县| 广德县|