您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

MSSQL---extents

2024/7/29 5:49:12发布29次查看
1.mixed extent:每个表或索引创建时,mssql并不给它分配一个extent,而是在mixed extnet内分配一个页,空间需求扩大时,再分配一个,直到表或索引的空间需求超过8个页,系统为它分配一个extent,这个extent就是uniform. extent; 2.uniform. extent:当表或
1.mixed extent:每个表或索引创建时,mssql并不给它分配一个extent,而是在mixed extnet内分配一个页,空间需求扩大时,再分配一个…,直到表或索引的空间需求超过8个页,系统为它分配一个extent,这个extent就是uniform. extent;
2.uniform. extent:当表或索引的空间需求超过8个页时,系统就为它分配一个uniform. extent;
二、mssql用几种页来记录extent的使用:
1.gam:global allocation map,用来记录extent是否已经被使用,每个位记录一个extent,0为已用,1表示未用,一个页大约有8000字节、64000个位,每个gam页可以记录64000个extent,每个extent为8*8k=64k,那么gam页最终可以记录64k*64000大小的空间,即大约4g的空间,也就是说gam只能记录4g大小的空间,超过4g必须另外分配gam,第一和第二个gam间隔511230个页,第一个gam总是文件的第三个页(page 2);
2.sgam:shared global allocation map,用来记录extent是否被用作mixed extent,每个位记录一个extent,如果为1,说明对应的extent用作mixed extent且其中还有可用的页,为0,说明其为uniform. extent或mixed extent但已没可用页。同样,一个sgam可以记录4g的空间,超过这个大小就需要另外分配sgam,第一个和第二个sgam间隔511230个页,第一个sgam总是文件的第四个页(page 3);
3.另外一种页——iam,index allocation map,用来记录每个对象在一个文件中extents的情况,也就是记录对象被分配了一个文件中的extents,iam页头有八个槽,分别用来指向表或索引的头八个页,因为它们都被分配在mixed extents里,后面页头还有一个map,其中每个位对应一个extent,如果相应文件中extent的位是1,就说明这个extent属于该对象,否则,就不属于该对象;该页可以在文件的任何位置分配,它也可以不指向它所在文件的extents,注意:iam仅仅对应被一个分配单位使用的文件中的4g范围的extents使用情况,对应511230个页,一旦超过这些页,系统就要分配另外一个iam页,一个对象的各个iam也都被链接在一起,iam头部有指向第一个extent的地址。每个分配单位中,只包含一个表或索引分区的一类页,多个分区要用到多个iam,而同一个分区不同类的页,也要用到不同的iam页。
4.pfs, page free space,用来记录每个文件中每个页如何使用的,文件的第二个页为pfs页,其后第8088个也是pfs页,因为一个pfs页中只有8088个字节可以用来记录页的使用情况。
5.dcm,differential changed map,用来记录自从上次全备以来改变过的extents,主要用于差异备份需要,文件的第七个页(page 6)为dcm页,也是只能覆盖4g的空间,超过4g就要分配另一个dcm页,中间要间隔511230个页。
6.bcm,bulk changed map,用来记录最小或批量日志操作改变的extents,文件的第八个页为bcm页,只能覆盖4g的空间,超过4g就要重新分配bcm页,中间间隔511230个页。
7.至此,可以总结如下:文件的第一个页为文件头页,即page 0,第二个页为pfs页,第三个页为gam页,第四个页为sgam页,第七个页为dcm页,第八个页为bcm页,而iam页可以在文件任何位置分配。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product