浏览 1768 次
锁定老帖子 主题:理解SQL Server中页和盘区
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||
发表时间:2009-09-29
最后修改:2009-09-29
http://msdn.microsoft.com/en-us/library/ms190969.aspx
原文:
SQL Server中最基本的存储单元是页(page)。系统给数据库文件(.mdf .ndf)分配的磁盘空间逻辑上被分解为从0..n的多个编号连续的页。磁盘的I/O操作是在页级水平完成的,也就是说,SQL Server每次读或写整个的数据页(data page). 盘区(Extent)是物理上连续的8个页,这样便于有效地管理页,所有的页都存储在盘区。 页(Pages) 在SQL Server中,页的大小为8KB。这意味着1M字节可以有128页。每页有一个96字节的页头(Header),页头用来存储页的系统信息,具体包括:页编号,页类型、该页剩余空闲空间、 下面表列出了SQL Server的数据文件中所用的页的类型
数据行在页头之后,按顺序存储在页中。在页的底部有一个记录每行偏移量的表格,这个偏移量表格的每行对应于页中的每行记录。每个偏移量用来表示每行记录的第一个字节与页开始的 位置的距离。偏移量表格中行与页中行的顺序相反。 盘区(Extents) 盘区是管理磁盘空间的基本单元。每个盘区是由物理上连续的8个页构成,也就是说,每兆磁盘空间可以容纳16个盘区。 为了更有效分配空间,SQL Server不为小数据量的表分配一个完整的盘区。SQL Server有两种类型盘区:
一个新表或索引通常是从混合盘区中分配页,当表或索引的大小增长超过了8页,那么就以uniform extents方式进行分配。当在已存在的表上创建索引,如果表中行对应的索引大小超过了8页,也以uniform extents方式分配空间。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||