我在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

SQL Server 索引基础知识(8)--- 数据基本格式补充(转自蝈蝈俊.net)相关推荐

  1. [转]SQL Server 索引基础知识(2)----聚集索引,非聚集索引

    SQL Server 索引基础知识(2)----聚集索引,非聚集索引 [来自]http://blog.joycode.com/ghj/archive/2008/01/02/113291.aspx 由于 ...

  2. SQL Server 索引基础知识(1)--- 记录数据的基本格式

    不论是缓存的数据信息,还是物理保存的信息,他们的基本单位都是数据页.所以理解数据页是最最基础的知识点,本篇博客就介绍跟索引有关的数据页的一些基础知识. 数据页的基础知识 SQL Server 中数据存 ...

  3. SQL Server 索引基础知识 1 --- 记录数据的基本格式

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 由于需要 ...

  4. SQL Server 索引基础知识(10)----Join 时的三种算法简介

    我们书写查询语句的时候,Join 参数之前可以是下面三个 { LOOP | MERGE | HASH } JOIN  . 如果不使用,则系统自己分析那种方式快,使用那种方式. 这其实是SQL Serv ...

  5. SQL Server 索引基础知识(7)----Indexing for AND(转自蝈蝈俊.net)

    我们通过一个实例来看 有And 操作符时候的最常见的一种情况.我们有下面一个表, CREATE TABLE [dbo].[member]( [member_no] [dbo].[numeric_id] ...

  6. SQL - server 数据库基础知识

    SQL:Structured Quety Language SQL SERVER是一个以客户/服务器(c/s)模式访问.使用Transact-SQL语言的关系型数据库管理子系统(RDBMS) DBMS ...

  7. SQL Server数据库基础知识汇总

    目录 目录 一.数据库概念 1.1 什么是数据库 1.2 为什么用数据库 1.3 数据库的发展历史 1.4 数据库分类 1.5 DBMS数据库管理系统 二. SQL(Structured Query ...

  8. 数据库开发基本操作-SQL Server数据库基础知识

    数据库是一个信息系统应用程序的重要组成部分,在Web开发中,应用更加广泛,要学习好Web开发和ADO.NET,就必须对数据库有一定的了解. 数据库的概念很广,可以从很多方面进行解释.但是在计算机中,它 ...

  9. SQL server 数据库基础知识之数据类型

    --数据类型 1.字符型:char.varchar.nchar.nvarchar char 和varchar (varchar为可变长度字符串)  在字符串长度固定的情况下,用char,因为char速 ...

最新文章

  1. 网络负载均衡-DNS负载均衡
  2. freemark简单事例
  3. node.jsv12.16.3正式版
  4. D(X)=E(X^2)-E^2(X)
  5. 生成网上下载的EF项目对应的数据库
  6. 华硕主板固态硬盘不识别_主板启动设置无法识别固态硬盘 - 卡饭网
  7. 减少 JPG 文件大小
  8. 如何制定切实可行的计划并好好执行——2020年,我不想再碌碌无为
  9. pycharm 隐藏或显示文件类型
  10. Quixel bridge无法导入到blender
  11. 怎么让蜘蛛快速抓取的方法
  12. echarts如何引入市级地图
  13. java 直播rtmp推流_如何设置rtmp推流直播(斗鱼,腾讯云,yy等直播)?
  14. 招募,IT 技术界的伯乐和千里马
  15. 三、wss连接B站弹幕
  16. ELK—x-pack插件
  17. python——计算n的阶乘
  18. tp飞蛾打印机PHP,易连云打印机PHP接口
  19. 运维开发实践 - helm
  20. 用c语言求解ax2 bx c=0方程的根,用公式法求解一元二次方程ax

热门文章

  1. 《SOC芯片研究框架》深度科普,发展趋势、技术特点、产业链一文看懂
  2. 重大里程碑!VOLO屠榜CV任务,无需额外数据,首个超越87%的模型
  3. YOLOV8:FileNotFoundError: train: No labels found in /home/smy/new-yolov5/ultralytic
  4. 爬虫学习(16):selenium自动化测试:人为模拟滑块移动
  5. 自动化运维工具之pxe+kickstart
  6. 基于AM335X开发板 ARM Cortex-A8——Acontis EtherCAT主站开发案例
  7. 激光打标机使标记处理智能化
  8. Keyence激光打标机入门2
  9. Linux安装maven(详细教程)
  10. IAR Embedded Workbench 破解方法+工具+授权文件