亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

SQL Server Page結構深入分析

2024-08-31 01:05:14
字體:
來源:轉載
供稿:網友

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個連續(xù)的Page組成一個區(qū)(Extent),數據文件中已分配(Allocated)的空間被分割成區(qū)的整數倍。一次磁盤IO操作作用于Page級別,而空間分配的最小單元是區(qū)。

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

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

一,Page的結構

每一個Page都由 頭部(Header),內容(Content)和行偏移量(Offset)組成,頭部是在Page的開始處,占用96Bytes,用于存儲Page的編號,Page的類型,分配單元(Allocation Unit)等系統(tǒng)信息。注:在單個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).

SQLServer,Page結構

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

二,查看Page頭部信息

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

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 – data page,用于表示:堆表或聚集索引的葉子節(jié)點
2 – index page,用于表示:聚集索引的中間節(jié)點或者非聚集索引中所有級別的節(jié)點
其他Page類型(系統(tǒng)頁是管理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中的一個區(qū)。
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,存儲差異備份的映射,表示從上一次完整備份之后,該區(qū)的數據是否修改過。
17 – ML map page,表示從上一次備份之后,在大容量日志(bulk-Logged)操作期間,該區(qū)的數據是否被修改過,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表示的是葉子節(jié)點

4, Page的元數據

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

Metadata: AllocUnitId =72057595905900544,該Page所在的分配單元ID(allocation_unit_id)
Metadata: PartitionId =72057594059423744,該Page所在的分區(qū)的分區(qū)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  :頁面中剩余的空間,單位是字節(jié),還剩83字節(jié)的空間 
m_reservedCnt = 0 :為活動事務保留的存儲空間,單位是字節(jié)
m_ghostRecCnt = 0 :頁面中存在的幽靈記錄的總數(ghost record count)
關于Page頭部的信息,可以閱讀《Inside the Storage Engine: Anatomy of a page》;

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

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

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

 

注:相關教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
免费一级片在线观看| 日本美女一区二区三区视频| 欧美性色综合网| 欧美99在线视频观看| 亚洲欧美日韩国产成人精品影院| 清纯唯美亚洲激情| 免费中文字幕日韩| 在线 丝袜 欧美 日韩 制服| 欧洲激情一区二区| eeuss影院在线| 先锋影音二区| 欧美高清一区二区| 欧美特黄色片| 特大巨黑人吊性xxxxn38| 国产无码精品在线播放| 成人白浆超碰人人人人| 国产97在线 | 亚洲| 欧美图区在线视频| 欧美独立站高清久久| 中文字幕国产日韩| 日本免费在线视频不卡一不卡二| 欧美r级在线| 亚州欧美日韩中文视频| 日韩精品国产精品| 色综合视频在线观看| 黄网在线观看视频| 在线国产一区二区三区| 久操精品在线| 久久久久免费视频| 国产精品美女久久久久久不卡| 天天干在线观看| 欧美另类变人与禽xxxxx| 日本伦理一区二区三区| 国产不卡一区二区在线播放| 在线观看一区不卡| 网站黄色在线观看| 亚洲欧美综合乱码精品成人网| 欧美精品一区二区三区一线天视频| 韩日午夜在线资源一区二区| 欧美精品电影| 小小的日本在线观看免费色网| 日韩精品乱码免费| 免费成人在线网站| 国产精品美女在线| 国产黄色大片在线观看| 免费黄色影片在线| 高清色视频在线观看| 亚洲伦片免费看| 中文一区一区三区高中清不卡免费| 欧美日韩一级片在线观看| 亚洲精品国产一区二区三区| 不卡伊人av在线播放| 日韩免费视频| 手机av在线网站| 亚洲国产综合久久精品小蝴蝶| 婷婷综合成人| 亚洲成人一区二区| 欧美一区二区三区在线播放| www.嫩草免费在线观看| 国产成人极品视频| 日韩a级片在线观看| 一区二区欧美视频| 欧洲第一无人区观看| 亚洲韩日在线| 国 产 黄 色 大 片| 欧美激情一区二区| 一区二区三区四区在线观看国产日韩| 免费在线观看a视频| a级在线观看视频| 亚洲一区视频在线观看视频| 亚洲人成啪啪网站| 欧美美女15p| 伊人久久综合视频| 亚洲黄色一区二区三区| 亚洲国产成人va在线观看天堂| av电影网站在线观看| 国产三区在线视频| 91欧美激情另类亚洲| aaa亚洲精品一二三区| 欧美二区三区的天堂| 国产精品国产三级国产专播品爱网| 亚洲人成网站777色婷婷| 少妇极品熟妇人妻无码| 久久久久久av无码免费网站| 日韩av网站在线免费观看| 91精品久久久久久久久99蜜臂| 色在线观看视频| 九九热线视频只有这里最精品| 中文字幕欧美精品在线| 精品无人乱码一区二区三区| 久久亚洲国产中v天仙www| 欧洲生活片亚洲生活在线观看| 凹凸av导航大全精品| 久久爱一区二区| 在线观看欧美日韩电影| 日本999视频| 一区二区中文字幕在线| 天天操夜夜拍| 福利一区二区免费视频| 欧美激情一区二区三区p站| 2018av男人天堂| 麻豆精品一区二区av白丝在线| 亚洲精品成人在线播放| 高清日韩av电影| 99色精品视频| 亚洲深夜福利视频| 91精品人妻一区二区三区蜜桃2| 日韩国产欧美| 精品国内片67194| 91传媒久久久| 久久亚洲AV成人无码国产野外| 四虎成人在线播放| 激情综合五月天| 最新国产一区二区| 日韩精品极品视频在线观看免费| 国产精品人人妻人人爽人人牛| 欧亚精品在线观看| 亚洲色图网址| 久久久久久这里只有精品| 国产精品va在线| 色播在线视频| 色欲AV无码精品一区二区久久| 国产精品网在线观看| 永久免费黄色片| 首页国产欧美日韩丝袜| 美女18一级毛片一品久道久久综合| 欧美另类一区| 亚洲综合av在线播放| 成人亚洲精品| 日本在线高清| 东方av正在进入| 国产乱码精品一区二三区蜜臂| 亚洲日本欧美天堂| www亚洲精品| 国产中文字幕第一页| 无码人妻丰满熟妇奶水区码| 久久久久免费| 国产精品美女999| 又黄又爽又色的视频| 日韩精品www| jvid福利写真一区二区三区| 中文字幕影音在线| 日韩av资源在线播放| 久久午夜精品视频| 蜜乳av一区二区三区| 中文字幕免费精品| 国产精品久久久免费观看| 精品少妇一区二区三区免费观看| 国产视频一区二区三区在线观看| 日韩欧美中文一区二区| 69影院欧美专区视频| 黄色小视频在线播放| 国产乱码一区| 老少交欧美另类| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩在线影院| 99久精品国产| 欧美白人猛性xxxxx交69| 欧美国产精品一二三| 少妇bbbb搡bbbb| 欧美成人精品一区二区男人看| 国产成人亚洲综合91| 91丝袜超薄交口足| 欧美熟妇一区二区| 国产一区二区播放| 俄罗斯一级**毛片在线播放| 日日草天天干| jizzjizzjizz国产| 国产精品久久久久毛片软件| 国产伦精品一区二区三区照片| 亚洲电影在线| 色综久久综合桃花网| 久久免费视频观看| 91tv亚洲精品香蕉国产一区| 免费在线观看h片| 久久久久久久999| 色屁屁草草影院ccyy.com| 日本二区视频| 欧美91大片| 天堂网在线观看在线观看精品| 国产精品久久久久国产精品日日| 欧美日韩一区二区免费在线观看| 国产精品99在线观看| 二区三区不卡| 欧美黄色精品| 免费a在线看| 国产一区二区视频在线免费观看| 激情久久av| 国产亚洲一区二区三区在线播放| 亚洲人成网站影音先锋播放| 网友自拍亚洲| 99久久精品费精品国产| 玖玖在线免费视频| 麻豆成人av在线| 99视频在线观看免费| 中文字幕在线视频第一页| 四虎永久网址| 26uuu另类亚洲欧美日本一| 精品日本一线二线三线不卡| 亚洲欧洲一区二区在线观看| 黄色免费网站观看| jizz日本免费| 欧美黑人xx片| 国产免费一区二区三区在线能观看| 亚洲人午夜精品免费| 成年人在线视频| www国产91| 中文字幕一区二区在线播放| 直接在线观看的三级网址| 国产精品视频久久久久久| 日韩av在线播放资源| 亚洲精品国产精品国自产观看浪潮| 成视频在线观看免费观看| 国产福利免费在线观看| 男男互摸gay网站| 中文字幕精品—区二区日日骚| 亚洲成人1234| 欧美日韩国产一区二区三区地区| 国产精品色悠悠| 另类视频在线观看+1080p| xxxx欧美18另类的高清| 欧美高清性hdvideosex| 8mav模特福利视频在线观看| 天天色天天操天天做| 国产区精品区| 色老综合老女人久久久| 亚洲人成网站影音先锋播放| 侵犯稚嫩小箩莉h文系列小说| 性欧美超级视频| 超碰97国产精品人人cao| 亚洲卡一卡二卡三| 日韩激情av在线免费观看| 93在线视频精品免费观看| 欧美日韩国产区一| 日日夜夜免费精品视频| 中文字幕久热在线精品| 视频一区免费观看| 青青久在线视频免费观看| 一区二区三区网址| 日韩精品视频在线观看一区二区三区| 成人6969www免费视频| 亚洲同志男男gay1069网站| 爱爱免费小视频| 波多野结衣视频一区二区| 黄色日韩网站视频| 国内精品久久久久久久影视麻豆| 各处沟厕大尺度偷拍女厕嘘嘘| 特级毛片www| 欧美巨大xxxx做受沙滩| 日本高清视频免费在线观看| 亚洲成人一级片| 2019中文字幕全在线观看| 操人视频欧美| 中国丰满熟妇xxxx性| 视频在线不卡免费观看| 日本一二三区视频| 一本色道**综合亚洲精品蜜桃冫| 麻豆精品蜜桃视频网站| 中文字幕二三区不卡| 国产卡一卡二卡三| 一级黄色大毛片| 天堂中文字幕在线观看| 亚洲欧洲二区| 日韩免费久久| 日本免费在线视频| 欧美黄色免费在线观看| 国产精品国产三级国产普通话三级| 亚洲制服丝袜一区| 韩国欧美一区| 男女无套免费视频网站动漫| 欧美另类交人妖| 在线无限看免费粉色视频| 色偷偷噜噜噜亚洲男人的天堂| xxx国产在线观看| 一区二区三区四区不卡| 粉嫩av蜜桃av蜜臀av| 最新天堂中文在线| 国产精品婷婷午夜在线观看| 久久久亚洲精品一区二区三区| 免费在线观看污视频| 亚洲天堂免费在线观看视频| 久久精品网站视频| 日日骚欧美日韩| 国产日产亚洲系列最新| 91亚洲自偷观看高清| 91精品91久久久久久| 国产在线日韩欧美| 在线午夜精品| 成人观看免费完整观看| 国产一区二区中文字幕免费看| 青青草偷拍视频| 国产免费看av| 国产999精品久久久| wwwwww.色| 久九九久频精品短视频| 久久精品99久久久久久久久| 欧美日韩激情视频在线观看| 国产精品一区二区三区乱码| 综合国产精品| 日韩av自拍偷拍| 999在线观看视频| 永久免费的av网站| 99re热在线观看| 精品国产区一区二区三区在线观看| 在线成人中文字幕| 激情成人综合| 在线观看美女av| 精品免费视频123区| 成人午夜影院| 性欧美freehd18| 亚洲 欧美 综合 另类 中字| 国产日本欧美一区二区三区在线| 中文字幕 国产精品| 麻豆成人精品| 一区二区视频在线观看免费的| 欧美成人免费在线观看视频| 999免费视频| 国产精品乱看| 日本免费色视频| 精品中文视频在线| 中文字幕一区二区三区人妻在线视频| 国产精品一区免费视频| 草逼视频免费看| 久久综合给合久久狠狠狠97色69| 国产精品毛片aⅴ一区二区三区| 久久365资源| 久久久久久久综合色一本| 伊人网免费视频|