从物理结构上谈一谈SQL Server数据库的优化

我们知道,SQL Server中数据存储的基本单位是。为数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。磁盘 I/O 操作在页级执行。也就是说,SQL Server 读取或写入所有数据页。

平时在通过SQL Server Profiler 或者打开Statistics IO 选项时看到物理读,逻辑度的单位都是页。

在SQL Server 中,页的大小为8KB。这意味着SQL Server数据库中每MB有128 页。每页的开头是96 字节的标头,用于存储有关页的系统信息。此信息包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元 ID。

下表说明了SQL Server 数据库的数据文件中所使用的页类型。

页类型内容

Data

当 text in row 设置为 ON 时,包含除 text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 数据之外的所有数据的数据行。

Index

索引条目。

Text/Image

大型对象数据类型:

  • text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 数据。

     

数据行超过 8 KB 时为可变长度数据类型列:

  • varchar、nvarchar、varbinary 和 sql_variant

     

Global Allocation Map、Shared Global Allocation Map

有关区是否分配的信息。

Page Free Space

有关页分配和页的可用空间的信息。

Index Allocation Map

有关每个分配单元中表或索引所使用的区的信息。

Bulk Changed Map

有关每个分配单元中自***一条 BACKUP LOG 语句之后的大容量操作所修改的区的信息。

Differential Changed Map

有关每个分配单元中自***一条 BACKUP DATABASE 语句之后更改的区的信息。

在数据页上,数据行紧接着标头按顺序放置。页的末尾是行偏移表,对于页中的每一行,每个行偏移表都包含一个条目。每个条目记录对应行的***个字节与页首的距离。行偏移表中的条目的顺序与页中行的顺序相反。

数据行存储在页上,超出页大小如此。

2个原则:

表设计:Row 要占用尽可能短的长度,占用少的空间,让一个page上存储更多的row,这样在相同的读次数下,获取到的数据就更多了。

查询:Select的时候,别动不动就来个*,因为当row 中有Image,text等,或者本身变长字段vchar等加起来的长度超过了8k,就会需要去 

ROW_OVERFLOW_DATA 中去读取一次。增加了读的开销。当然从网络等开销来说也不建议用* 。

关于SQL Server数据库从存储页方面的优化措施就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. SQL Server数据库多表关联汇总查询的问题解决
  2. 设置SQL Server数据库AWE机制使其支持大内存
  3. SQL Server 2008数据库被标记为可疑的解决方法
  4. SQL Server数据库中FOR XML AUTO的使用详解续
  5. SQL Server使用UNION代替OR提升查询性能的实例

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/247385.html<

(0)
管理的头像管理
上一篇2025-04-27 02:31
下一篇 2025-04-27 02:32

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注