数据库引擎可伸缩性和性能增强

数据分区的功能得到增强,现在可以对本机表和索引进行分区。通过使用新的快照隔离级别以及在单个连接中传递多个活动结果集的功能,改进了应用程序并发性能。

可伸缩性和性能增强功能

计划指南

当不可能或不希望直接更改查询文本时,便可使用新的系统存储过程 sp_create_plan_guide 通过对查询附加提示来优化查询性能。当由第三方供应商部署的数据库应用程序中有小型查询子集未按预期执行时,计划指南会很有用。

有关详细信息,请参阅使用计划指南在部署的应用程序中优化查询

快照隔离级别

快照隔离级别实现行版本控制,用来为用户提供在当前事务启动时数据库中数据存在状态的视图。除了在恢复过程中之外,快照事务不获取锁来保护读操作。快照隔离能尽量减少只读应用程序中的锁定和阻塞问题。

有关详细信息,请参阅数据库引擎中基于行版本控制的隔离级别

相关日期时间列上的统计信息

可以启用新的数据库 SET 选项 DATE_CORRELATION_OPTIMIZATION 来改善查询性能,该查询性能联接两个时间日期列相关的表并且在查询谓词中指定了数据限制。

有关详细信息,请参阅优化访问相关 datetime 列的查询

强制参数化

通过将新的 PARAMETERIZATION 数据库的 SET 选项设置为 FORCED,可以指定在数据库上执行的所有查询要参数化。强制参数化通过降低重新编译查询的频率可能会改善某些数据库的性能。

有关详细信息,请参阅强制参数化

异步统计信息更新

可以启用新的数据库 SET 选项 AUTO_UPDATE_STATISTICS_ASYNC 来提高查询响应时间的可预测性。启用该选项后,后台工作线程便将过期的统计信息排队,而启动统计信息更新的查询会立即编译而不是等待要更新的统计信息。

有关详细信息,请参阅索引统计信息

持久化计算列

可以将计算列标记为 PERSISTED,在这种情况下,计算列的值将存储在表的数据页中。这样可以加快计算密集型列的检索。

有关详细信息,请参阅计算列

多活动结果集 (MARS)。

SQL Server 2005 引入了多个语句在单一连接上同时返回结果集的功能。在 SQL Server 的早期版本中,对于每个连接每次只能有一个语句正在返回结果集,直到所有结果集都检索完才能执行新语句

有关详细信息,请参阅批处理执行环境和 MARS

在非聚集索引中包含非键列

可以将不属于索引键的列包含在非聚集索引中。包含非键列可以加快查询,使其不必访问数据行就能从索引中获取全部所需数据,并且可以突破对当前索引大小的最多 16 个键列和最大索引键大小 900 个字节的限制。

有关详细信息,请参阅具有包含性列的索引

索引锁定粒度

可以使用 CREATE INDEX 和 ALTER INDEX 中新的 ALLOW_ROW_LOCKS 和 ALLOW_PAGE_LOCKS 选项来控制对索引出现锁定的级别。

有关详细信息,请参阅设置索引选项

对 XML 数据类型的列建立索引

使用 XML 数据类型存储的 XML 文档和片段可能非常大。如果没有为它们建立索引,数据库引擎必须为每个引用拆分文档和片段。对使用 XML 数据类型的列定义索引,可使 数据库引擎更有效地处理文档和片段。

有关详细信息,请参阅 xml 数据类型列的索引

索引视图增强功能

与以前各版本相比,SQL Server 2005 查询优化器可将更多查询与索引视图相匹配,包括包含标量表达式、标量聚合函数与用户定义函数、间隔表达式以及等价条件的查询。

有关详细信息,请参阅设计索引视图

现在,索引视图定义也可以包含带有一定限制的标量聚合函数和用户定义函数。

有关详细信息,请参阅创建索引视图

新的查询提示

新添加了四个查询提示,用于生成最佳查询计划。

在执行为查询生成的计划之后,RECOMPILE 强制 SQL Server 放弃该计划,以便在下次执行同样或类似计划时生成新计划。对于变量值每次编译和执行时都广泛变化的查询,RECOMPILE 很有用。当只需要重新编译存储过程中的一个查询子集时,可使用此提示代替 WITH RECOMPILE 选项来创建存储过程。

OPTIMIZE FOR 指示 SQL Server 为某个本地变量使用一个特定值,若不如此指定,当编译和优化查询时此变量的值则为未知。

USE PLAN 指示 SQL Server 对查询使用现有的查询计划。对于计划致使执行缓慢的查询,若已知有更好的计划,则可使用USE PLAN 查询提示。

PARAMETERIZATION 指定是否将优化查询作为编译查询计划的一部分,并且在计划指南内部用该查询覆盖 PARAMETERIZATION 数据库 SET 选项的当前设置。

有关详细信息,请参阅查询提示 (Transact-SQL)

删除并重新生成大型对象

当删除或重新生成使用超过 128 个区的表和索引时,SQL Server 2005 将实际的页释放及其关联的锁迟延到提交事务之后。将过程拆分为逻辑阶段和物理阶段可避免这些锁。

有关详细信息,请参阅删除并重新生成大型对象

可伸缩的共享数据库

利用此新增功能,可以通过存储区域网络 (SAN) 将只读数据库附加到 SQL Server 2005 的多个服务器实例中。通过可伸缩的共享数据库,可以使用报表服务器和报表卷的标准硬件扩展数据库,以获得平稳的升级路径。

有关详细信息,请参阅可缩放共享数据库概述

请参阅

概念

数据库引擎增强功能

帮助和信息

获取 SQL Server 2005 帮助