SQL Server 索引基础知识(8)--- 数据基本格式补充(转自蝈蝈俊.net)
2008-09-05 15:47
429 查看
我在SQL Server 索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8K大小。
对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。
区是管理空间的基本单位。一个区是八个物理上连续的页(即 64 KB)。这意味着 SQL Server 数据库中每 MB 有 16 个区。
为了使空间分配更有效,SQL Server 不会将所有区分配给包含少量数据的表。SQL Server 有两种类型的区:
统一区,由单个对象所有。区中的所有 8 页只能由所属对象使用。
混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。
通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。
为何会这样呢?
其实很简单:
读或写 8KB 的时间与读或写 64 KB的时间几乎相同。
在 8 KB 到 64 KB 范围之内,单个磁盘 I/O 传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。
因此,从数学上来讲,当需要传输 64 KB 以上的 SQL 数据时,
尽可能地执行 64 KB 磁盘传输是有益的,即分成数个64K的操作。
因为 64 KB 传输基本上与 8 KB 传输一样快,而每次传输的 SQL Server 数据是 8 KB 传输的 8 倍。
参看:
磁盘 I/O 性能
http://windows.chinaitlab.com/skill/9872.html
参考资料:
MSDN 中关于“页和区”的描述
http://technet.microsoft.com/zh-cn/library/ms190969.aspx
对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。
区是管理空间的基本单位。一个区是八个物理上连续的页(即 64 KB)。这意味着 SQL Server 数据库中每 MB 有 16 个区。
为了使空间分配更有效,SQL Server 不会将所有区分配给包含少量数据的表。SQL Server 有两种类型的区:
统一区,由单个对象所有。区中的所有 8 页只能由所属对象使用。
混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。
通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。
为何会这样呢?
其实很简单:
读或写 8KB 的时间与读或写 64 KB的时间几乎相同。
在 8 KB 到 64 KB 范围之内,单个磁盘 I/O 传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。
因此,从数学上来讲,当需要传输 64 KB 以上的 SQL 数据时,
尽可能地执行 64 KB 磁盘传输是有益的,即分成数个64K的操作。
因为 64 KB 传输基本上与 8 KB 传输一样快,而每次传输的 SQL Server 数据是 8 KB 传输的 8 倍。
参看:
磁盘 I/O 性能
http://windows.chinaitlab.com/skill/9872.html
参考资料:
MSDN 中关于“页和区”的描述
http://technet.microsoft.com/zh-cn/library/ms190969.aspx
相关文章推荐
- SQL Server 索引基础知识(8)--- 数据基本格式补充
- SQL Server 索引基础知识(8)--- 数据基本格式补充
- SQL Server 索引基础知识(8)--- 数据基本格式补充
- SQL Server 索引基础知识(8)--- 数据基本格式补充
- SQL Server 索引基础知识(1)--- 记录数据的基本格式(转自蝈蝈俊.net)
- [转]SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- SQL Server 索引基础知识(1)--- 记录数据的基本格式 (转)
- SQL Server 索引基础知识(2)----聚集索引,非聚集索引(转自蝈蝈俊.net)
- SQL Server 索引基础知识(9)----Indexing for OR(转自蝈蝈俊.net)
- SQL Server 索引基础知识(3)----测试中一些常看的指标和清除缓存的方法(转自蝈蝈俊.net)
- SQL Server 索引基础知识(5)----理解newid()和newsequentialid()(转自蝈蝈俊.net)
- SQL Server 索引基础知识(4)----主键与聚集索引(转自蝈蝈俊.net)
- SQL Server 索引基础知识(10)----Join 时的三种算法简介(转自蝈蝈俊.net)
- SQL Server 索引基础知识(6)----索引的代价,使用场景(转自蝈蝈俊.net)