SQL Server 2000 中的变化建立在体系结构的增强上。这种增强是在 SQL Server 7.0 中引入的,其目的是为后来的改进和创新提供基础。存储引擎小组的主要目的是减少花在定期优化服务器上的时间和精力。由于绝大多数的调优参数设置是基于数据库使用的,所以引擎使用自适应算法动态调整这些设置,使其适合数据库环境。调优参数现在可以按这种方式自动调整,而在早期版本中,它们需要不断调整和测试。您仍可以手动调整调优功能,但 SQL Server 2000 可以完成更多的工作。只有很少的 SQL Server 客户才需要对调优参数进行调整;这种调整工作需要进行仔细的测试,并且需要经验丰富的数据库管理员进行监督。
下表总结了 SQL Server 2000 存储引擎的主要增强功能。本文的后面将对这些内容进行详细阐述。
| 功能 |
描述及益处 |
| 应用程序锁定管理器 |
如果需要控制对应用程序定义的资源(如表单)的并发访问,新增的存储过程允许您使用 SQL Server 的应用程序锁定管理器锁定这些资源。 |
| 数据库控制台命令 (DBCC) |
DBCC CHECK 命令可以在联机处理过程中运行,且不会中断更新。新增的功能允许校验物理页的一致性,以检测硬件引起的错误。在 SQL Server 2000 企业版中,DBCC 可以在多个处理器上以并行方式运行。 |
| 数据库选项 |
所有的数据库选项都可使用 ALTER DATABASE 进行修改。此功能简化了管理工作。 |
| 差异备份 |
在 SQL Server 2000 中,由于改进后的功能可以在更广的层次上跟踪数据库的更改,差异备份的速度更快。 |
| 动态调优 |
通过使用动态自适应算法,服务器可以自动调整以前是静态不变的配置设置。管理控制仍可用于管理系统范围的资源,但以后您不必使用它们。手动设置参数可以在它们的约束边界内动态调整。 |
| 行内文本 |
在包含较小且使用频繁的文本列的表中,较小的文本值可以与标准数据行存储在同一页中,而不必存储在文本值页中。如果表中包含这种被频繁访问的文本数据,此功能可减少大量磁盘 I/O 操作。 |
| 并行建立索引 |
在企业版中,索引建立过程自动使用为并行处理配置的所有处理器,减少了建立索引所需的时间;例如,在一台八处理器的服务器中,时间缩短到原来的六分之一。索引建立过程还可利用内存和 tempdb 中的可用资源。 |
| 预读索引 |
读取索引的功能得到增强,提高了扫描索引的性能。 |
| 重组索引 |
对 DBCC SHOWCONTIG 进行的改进提供了有关索引碎片的详细信息。新增的 DBCC 命令 INDEXDEFRAG 可联机重组索引页,且不会中断数据库服务,也不会导致数据库一致性或故障恢复方面的问题。 |
| 降序排列索引中的键列 |
索引中的各个键列可单独指定为升序或降序。 |
| KILL 命令 |
此命令现在报告完成的进度。如果此命令正在等待另一个进程(例如回滚),则可以查看命令执行的进度。改进后的命令可以用于停止 Microsoft 分布式事务协调器 (MS DTC) 事务,而这些事务并不与特定会话相关联。 |
| 对高内存量的支持 |
Windows 2000 中的技术改进了使用大量内存的企业版系统的性能。通过使用 Windows 2000 的 AWE 扩展,SQL Server 2000 可至多支持 64 GB 物理内存 (RAM)。 |
| 锁定 |
改进后的锁定管理器可探测到其它资源(如线程和内存)的死锁情况。并发能力的改善同时也降低了死锁的发生,从而进一步加强了 SQL Server 2000 的可扩展性。 |
| 逻辑日志标记 |
Transact-SQL 命令可在日志中创建书签,使数据库可以恢复到书签所示的时点。此功能还可同步恢复用于同一应用程序的多个数据库。 |
| 联机索引重组 |
对 DBCC SHOWCONTIG 进行的改进提供了有关索引碎片的详细信息。新增的 DBCC 命令 INDEXDEFRAG 可联机重组索引页,且不会中断数据库服务,也不会导致数据库一致性或故障恢复方面的问题。 |
| 优化的预读 I/O 操作 |
对于扫描所涉及的每个文件,SQL Server 2000 都会同时发出多个连续的、预读读取操作。为提高性能,查询优化器在扫描表和索引时使用连续的预读 I/O 操作。 |
| 密码保护备份 |
可使用密码保护备份媒体和单独的备份。这样可以防止未授权的用户恢复备份并访问数据库。 |
| 故障恢复模式 |
通过使用故障恢复模式,可以选择数据库的日志记录级别。这样事务日志管理更加灵活。故障恢复模式可联机更改,以适应一天当中不断变化的数据库使用。 |
| 共享表扫描 |
在企业版中,对某个表的多次扫描可以利用其他进行中的对该表的扫描,减少了对磁盘的实际 I/O 操作。 |
| 收缩日志 |
收缩日志命令可在更多的情况下立即运行。即使不能立即收缩日志,SQL Server 也会提供建议性的反馈,说明在继续或完成收缩操作之前必需完成的操作。 |
| 快照备份 |
对第三方供应商提供的快照备份的支持进一步得到加强。快照备份采用存储技术,可以在几秒内备份或恢复整个数据库。如今,可以将这些备份与常规事务日志及差异备份相结合,为 OLTP 数据库提供完整的保护。此功能对于中型或大型数据库是非常有益的,因为在这种环境中可用性是非常重要的。 |
| 节省空间的空表和索引 |
SQL Server 2000 不为空表和索引分配磁盘页。SQL Server 7.0 会给空表和索引分配多达三个磁盘页。 |
| 前 n项排序 |
此新功能可优化前 n 项值的检索(例如,SELECT TOP 5 * FROM tablename)。 |
| Xlock |
SQL Server 2000 提供这种新的 Transact-SQL 锁定提示。它可用于明确调用互斥的、事务级别的页或表锁。 |
SQL Server 2000 中增加了许多功能,这些功能使数据交互更为有效,使管理更加灵活。以下部分将详细介绍这些增强功能,并提供相关的使用技巧。