设为首页 收藏本站
查看: 1159|回复: 0

[经验分享] SQL Server 2008存储结构之PFS结构

[复制链接]

尚未签到

发表于 2018-10-15 12:50:27 | 显示全部楼层 |阅读模式
  PFS(Page Free  Space),也叫页面自由空间,该页面用来跟踪一个文件中每一个特定的页面的利用率情况。一个文件中第二个页面(页码1)就是PFS页面,该页面的每个 字节都记录了相应页面的分配情况、页面类型、是否IAM页、是否包含删除记录、以及空间利用率信息;PFS能够管理和跟踪8088个页面的使用情况,即接 近64M的空间,以后每8088个页面将再出现一次。
  让我们首先了解一下PFS的页面管理字节的构造,管理单位为字节,每字节管理一个页面。
01234567 页面是否分配是否混合页面是否IAM页面是否幻影页面空间利用率  第0个bit为保留字节,始终为0
  第1个bit表示该页面是否已分配,我们知道GAM页用来管理区是否已分配,但一个区包含8个页面,所以用该bit用来准确定位该区的某个页面是否已分配出去了。
  第2个bit表示该页面是否混合分区的一个页面。
  第3个bit表示该页面是否是一个IAM页面。
  第4个bit表示该页面中是否包含幻影或已删除记录,这有助于SQL Server定期清理幻影或已删除记录。
  第5~7个页面表示该页面的空间使用率情况。
  · 0:表示该页面为空
  · 1:表示该页面已使用1~50%
  · 2:表示该页面已使用51~80%
  · 3:表示该页面已使用81~95%
  · 4:表示该页面已使用96~100%
  我们可以用dbcc page(testdb,1,1,2)来看一下PFS的页面结构,BUFFER和PAGE HEADER再次就不做详述了,PFS关于页面分配的信息是从第100个字节开始的,最后四个字节为系统保留字节,总计管理8088页。
  其中头四页均为44,换算成2进制即0100 0100,即为未分配(大概为保留页的缘故),且为已分配完成的混合区或统一类型区,非IAM页,且无幻影记录,空间利用率96~100%。
4F09C060:   00009c1f 44444444 00004444 60647060 †....DDDD..DD`dp`  4F09C070:
74706070 60606060 60707060 40404040 †tp`p`````pp`@@@@  4F09C080:
40404040 61706070 60606070 60306060 †@@@@ap`p```p`0``  4F09C090:
60217024 60706060 60606060 40203020 †`!p$`p``````@ 0  4F09C0A0:
20202820 60606060 60606070 60606060 †  ( ```````p````  4F09C0B0:
70203020 30706070 70607060 70203060 †p 0 0p`pp`p`p 0`  4F09C0C0:
70203068 70607060 70607060 70607060 †p 0hp`p`p`p`p`p`  4F09C0D0:
70203060 60602020 60702030 20306070 †p 0```  `p 0 0`p  4F09C0E0:
60702830 60707070 60606070 60706070 †`p(0`ppp```p`p`p  4F09C0F0:
60706070 40404020 20202020 60706070 †`p`p@@@     `p`p  4F09C100:
60706060 64616070 60706070 60706070 †`p``da`p`p`p`p`p  4F09C110:
60700000 00000000 00000000 00000000 †`p..............  4F09C120:
00000000 00000000 00000000 00000000 †................  4F09DFF0:
00000000 00000000 00000000 00006000 †..............`.  最后让我们用Internals Viewer插件看一下PFS页的全貌吧。
DSC0000.jpg

  第七个页面(页码6)被称为差异变更(Differential Changed Map,DCM)页面。它跟踪一个文件中的哪一个区在最新一次完全数据库备份以后被修改过。SQL Server用在增量备份时只对已发生数据变更的分区进行增量备份即可。
  第八个页面(页码7)被称为批量更改映射(Bulk Changed  Map,BCM)页面,该页面当文件中的一个区在最小量或批量记日志操作中被使用时用到。就像GAM和SGAM页面,DCM和BCM页面针对它们代表的文 件区间中每一个区都有一个比特位相对应。这些页面的常规间距为511 230个页面。
  此外关于数据库在进行DML操作如何寻找合适的分区和页面对数据进行处理还是留待后续介绍吧。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-621940-1-1.html 上篇帖子: delphi中对MS SQL Server 2000的操作组件 下篇帖子: sql server 2008 故障转移群集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表