菜鸟学SQLServer--空间分配和管理

SQLServer在文件中有一些特定的页来做空间管理. 这里附上MSDN图:

“差异更改映射”页和“大容量更改映射”页

 

 

#文件头:

第0个页面,具体我不是太清楚它的用途,如果大家知道麻烦告知。

 

#PFS:

页可用空间(PageFreeSpace) , 用于记录每页的分配状态及可用空间量。

当数据库引擎需要分配新页时,就会从这里根据分配状态找出哪里有空闲的页面。 

当需要插入新行时,比如堆结构,会从这里的可用空间量查询出哪个页面还有可用空间可用于插入新行。 (索引不需这个可用空间查询过程,因为插入位置是由索引键值决定的)

 

#GAM 和 SGAM:

全局分配映射表 (GAM) -- GAM 页记录已分配的区。 0 为 已分配, 1 为未分配。

共享全局分配映射表 (SGAM) -- SGAM 页记录当前用作混合区且至少有一个未使用的页的区。 1为由未使用页的混合区,0为统一区或已满的混合区。

 

#BCM 和 DCM

差异更改映射表 (DCM) -- 跟踪自上次执行 BACKUP DATABASE 语句后更改过的区。 (与差异备份有关,进行差异备份时只需查看DCM就能快速找到自上次备份以来的修改过的脏区)

大容量更改映射表 (BCM) -- 跟踪自上次执行 BACKUP LOG 语句后,被大容量日志记录操作修改的区。 (与大容量日志记录恢复模式相关,)

 


https://msdn.microsoft.com/zh-cn/library/ms175195(v=sql.105).aspx

https://msdn.microsoft.com/zh-cn/library/ms187501(v=sql.105).aspx

https://msdn.microsoft.com/zh-cn/library/ms190950(v=sql.105).aspx

 

posted @ 2015-04-03 00:21  Bournex  阅读(528)  评论(0编辑  收藏  举报