亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > SQL Server Page結構深入分析

SQL Server Page結構深入分析

熱門標簽:外呼系統電銷專用 智能語音外呼系統選哪家 怎樣在地圖上標注路線圖標 武漢長沙外呼系統方法和技巧 奧威地圖標注多個地方 百度地圖標注不同路線 千呼電銷機器人價格 優質地圖標注 京華物流公司地圖標注

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 @0x0000005188B02000

m_pageId = (1:8777733)    m_headerVersion = 1     m_type = 1
m_typeFlagBits = 0x0    m_level = 0       m_flagBits = 0x220
m_objId (AllocUnitId.idObj) = 28503 m_indexId (AllocUnitId.idInd) = 256 
Metadata: AllocUnitId = 72057595905900544        
Metadata: PartitionId = 72057594059423744        Metadata: IndexId = 1
Metadata: ObjectId = 1029578706  m_prevPage = (1:8777732)   m_nextPage = (1:8777734)
pminlen = 16      m_slotCnt = 2      m_freeCnt = 4513
m_freeData = 3675     m_reservedCnt = 0     m_lsn = (1212327:16:558)
m_xactReserved = 0     m_xdesId = (0:799026688)   m_ghostRecCnt = 0
m_tornBits = -1518328013   DB Frag ID = 1      

Allocation Status
GAM (1:8690944) = ALLOCATED   SGAM (1:8690945) = NOT ALLOCATED 
PFS (1:8775480) = 0x40 ALLOCATED 0_PCT_FULL       DIFF (1:8690950) = CHANGED
ML (1:8690951) = NOT MIN_LOGGED

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

1,Page的編號

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

2,Page的類型

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

1 – data page,用于表示:堆表或聚集索引的葉子節點
2 – index page,用于表示:聚集索引的中間節點或者非聚集索引中所有級別的節點
其他Page類型(系統頁是管理Page的Page,例如,GAM,IAM等)如下:

3 – text mix page,4 – text tree page,用于存儲類型為文本的大對象數據
7 – sort page,用于存儲排序操作的中間數據結果
8 – GAM page,用于存儲全局分配映射數據GAM(Global Allocation Map),每一個數據文件被分割成4GB的空間塊(Chunk),每一個Chunk都對應一個GAM數據頁,GAM數據頁出現在數據文件特定的位置處,一個bit映射當前Chunk中的一個區。
9 – SGAM page,用于存儲SGAM頁(Shared GAM)
10 – IAM page,用于存儲IAM頁(Index Allocation Map)
11 – PFS page,用于存儲PFS頁(Page Free Space)
13 – boot page,用于存儲數據庫的信息,只有一個Page,Page的標識符是:db_id:1:9,
15 – file header page,存儲數據文件的數據,數據庫的每一個文件都有一個,Page的編號是0。
16 – diff map page,存儲差異備份的映射,表示從上一次完整備份之后,該區的數據是否修改過。
17 – ML map page,表示從上一次備份之后,在大容量日志(bulk-Logged)操作期間,該區的數據是否被修改過,This is what allows you to switch to bulk-logged mode for bulk-loads and index rebuilds without worrying about breaking a backup chain.
18 – a page that's be deallocated by DBCC CHECKDB during a repair operation.
19 – the temporary page that ALTER INDEX … REORGANIZE (or DBCC INDEXDEFRAG) uses when working on an index.
20 – a page pre-allocated as part of a bulk load operation, which will eventually be formatted as a ‘real' page.

3,Page在索引中的級數

數據頁在索引中的索引級數,m_level=0,表示處于Leaf Level。

對于堆表(Heap),m_level=0表示的是Data Page;
對于聚集索引,m_level=0表示的是Data Page;
對于非聚集索引,m_level=0表示的是葉子節點

4, Page的元數據

Page的元數據十分重要,不僅能夠查看處Page所在的Object,甚至能夠查看該Page所在的分配單元和分區ID,在死鎖進行故障排除時十分有用

Metadata: AllocUnitId =72057595905900544,該Page所在的分配單元ID(allocation_unit_id)
Metadata: PartitionId =72057594059423744,該Page所在的分區的分區ID(partition_id)
Metadata: IndexId = 1,該Page所在的索引ID
Metadata: ObjectId = 1029578706,用于表示Page所屬對象的object_id
5,page的鏈指針

由于數據表的Page并不是單獨存在的,而是通過雙向鏈式結構連接在一起的,

m_prevPage = (1:8777732) :用于表示前一個page (FileID : PageID)
m_nextPage = (1:8777734)  :用于表示下一個page (FileID:PageID)

6, 其他頭部字段

m_slotCnt = 2 :頁面中Slot的數量,用于Page中存儲的數據行數
m_freeCnt = 4513  :頁面中剩余的空間,單位是字節,還剩83字節的空間 
m_reservedCnt = 0 :為活動事務保留的存儲空間,單位是字節
m_ghostRecCnt = 0 :頁面中存在的幽靈記錄的總數(ghost record count)
關于Page頭部的信息,可以閱讀《Inside the Storage Engine: Anatomy of a page》;

三,利用Page的元數據排除死鎖

Page的元數據包含分區ID,索引ID和對象ID,用戶可以使用這些元數據,分析死鎖產生的原因。系統追蹤到產生死鎖的資源,可能是一個Page的資源標識符,如果能夠確認發生死鎖是由于數據表或索引的分區不合理導致的,那么可以重新設置分區列,或者設置分區邊界值,把單個分區拆分成多個分區,這樣就能把競爭的臨界資源分配到不同的分區中,避免查詢請求對資源的競爭,進而減少死鎖的發生。

Metadata: PartitionId ,該Page所在的分區的分區ID(partition_id);
Metadata: IndexId ,該Page所在索引ID;
Metadata: ObjectId,用于表示對象的object_id;

您可能感興趣的文章:
  • SQL Server怎么找出一個表包含的頁信息(Page)

標簽:來賓 銅仁 天水 威海 七臺河 防疫戰設 宿州 益陽

巨人網絡通訊聲明:本文標題《SQL Server Page結構深入分析》,本文關鍵詞  SQL,Server,Page,結構,深入分析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server Page結構深入分析》相關的同類信息!
  • 本頁收集關于SQL Server Page結構深入分析的相關信息資訊供網民參考!
  • 推薦文章
    欧美国产日韩一区二区三区| 日日夜人人澡人人澡人人看免| 国产综合91天堂亚洲国产| 黄视频网站免费看| 黄视频网站免费| 日本特黄特黄aaaaa大片| 国产麻豆精品高清在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本在线不卡视频| 欧美18性精品| 国产福利免费视频| 久久久久久久男人的天堂| 久久99这里只有精品国产| 欧美18性精品| 一级毛片视频播放| 日韩专区在线播放| 欧美另类videosbestsex久久| 午夜在线亚洲| 天天色成人| 日韩专区第一页| 日韩一级黄色片| 国产网站免费| 国产91精品一区二区| 精品视频一区二区| 青青久久精品| 999精品视频在线| 黄色福利| 天天色成人| 欧美激情一区二区三区在线| 天天做日日爱夜夜爽| 香蕉视频三级| 天堂网中文字幕| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美18性精品| 日韩av成人| 国产91丝袜在线播放0| 国产一区精品| 国产麻豆精品| 美女免费毛片| 亚欧成人乱码一区二区| 韩国三级一区| 欧美激情一区二区三区视频 | 美女免费毛片| 精品视频在线观看一区二区| 国产成人精品影视| 黄色免费三级| 你懂的日韩| a级黄色毛片免费播放视频| 日韩中文字幕一区二区不卡| 欧美一区二区三区在线观看| 日本特黄特色aa大片免费| 色综合久久天天综合| 国产一区精品| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久久久久久久综合影视网| 国产综合91天堂亚洲国产| 九九久久国产精品大片| 欧美国产日韩一区二区三区| 九九免费高清在线观看视频| 美女免费精品高清毛片在线视 | 你懂的福利视频| 青青青草影院 | 黄视频网站免费| 日韩av片免费播放| 亚洲天堂在线播放| 99久久精品国产麻豆| 欧美激情影院| 国产一区二区精品久久91| 99久久精品国产麻豆| 欧美大片一区| 日韩在线观看免费完整版视频| 欧美一级视频高清片| 九九久久99综合一区二区| 精品国产一区二区三区久久久蜜臀| 国产91丝袜在线播放0| 国产91丝袜在线播放0| 日本免费乱理伦片在线观看2018| 日本伦理片网站| 超级乱淫伦动漫| 日本伦理片网站| 日韩专区亚洲综合久久| 青青久久精品| 超级乱淫伦动漫| 日韩专区在线播放| 亚洲天堂在线播放| 亚洲第一色在线| 久久99欧美| 午夜激情视频在线观看 | 成人影院一区二区三区| 青青青草视频在线观看| 色综合久久天天综合| 韩国毛片| 亚洲天堂免费| 国产不卡高清在线观看视频| 免费国产在线观看| 欧美另类videosbestsex久久| 久久国产精品自线拍免费| 精品视频在线观看一区二区| 国产视频久久久久| 国产高清在线精品一区a| 欧美1区2区3区| 一级女人毛片人一女人| 日韩一级黄色| 青青青草视频在线观看| 天天做日日爱| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久国产一久久高清| 成人高清免费| 美女免费精品高清毛片在线视 | a级黄色毛片免费播放视频| 99久久视频| 国产精品自拍在线观看| 精品国产一区二区三区久| 九九干| 成人a大片在线观看| 久久久成人网| 亚洲天堂免费| 四虎影视久久| 日韩免费在线视频| 韩国毛片免费| 日韩专区第一页| 国产一区二区精品在线观看| 精品久久久久久综合网| 一级毛片视频播放| 欧美日本免费| 青青久在线视频| 日韩欧美一及在线播放| 精品久久久久久中文字幕2017| 午夜欧美成人久久久久久| 国产亚洲男人的天堂在线观看| 午夜家庭影院| 欧美激情一区二区三区在线| 色综合久久久久综合体桃花网| 99久久视频| 久久99这里只有精品国产| 午夜在线亚洲| 国产不卡高清在线观看视频| 日本特黄特色aa大片免费| 欧美一区二区三区在线观看| 精品国产香蕉伊思人在线又爽又黄| 成人av在线播放| 麻豆系列 在线视频| 精品久久久久久中文字幕2017| 日本特黄特色aa大片免费| 韩国三级视频网站| 精品国产三级a| 精品视频一区二区| 精品视频在线观看免费| 精品国产三级a| 欧美国产日韩精品| 日韩中文字幕在线观看视频| 国产a毛片| 韩国三级视频网站| 国产伦久视频免费观看 视频| 青青久久精品| 日韩中文字幕一区二区不卡| 九九精品久久| 国产国语对白一级毛片| 国产高清在线精品一区a| 九九精品在线| 日本特黄特黄aaaaa大片| 你懂的福利视频| 国产麻豆精品免费视频| 深夜做爰性大片中文| 九九免费高清在线观看视频| 韩国三级一区| 国产视频一区二区在线播放| 国产伦理精品| 欧美一区二区三区在线观看| 欧美另类videosbestsex久久| 午夜激情视频在线观看 | 精品国产亚洲一区二区三区| 青青久在线视频| a级毛片免费观看网站| 国产精品1024在线永久免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩免费在线视频| 一本伊大人香蕉高清在线观看| 国产成人女人在线视频观看| 精品视频在线观看一区二区| 精品毛片视频| 国产视频久久久久| 亚洲第一页乱| 精品在线视频播放| 成人高清免费| a级毛片免费观看网站| 日本在线不卡视频| 精品视频在线观看一区二区| 精品国产一区二区三区精东影业 | 成人av在线播放| 台湾毛片| 成人免费网站久久久| 999久久狠狠免费精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产a毛片| 国产a视频精品免费观看| 精品久久久久久免费影院| 国产伦理精品| 精品视频一区二区三区免费| 国产精品自拍在线观看|