本性能优化指南旨在帮助数据库管理员和开发人员配置 Microsoft? SQL Server? 2000,以获得最佳的性能,并帮助找出造成关系数据库(包括用于数据仓库的数据库)性能低下的原因。本指南还就如何装载、索引和编写查询以访问 SQL Server 中存储的数据提供了指导原则和最佳做法。另外还介绍了多种可用于分析性能特征的 SQL Server 工具。
简介 Microsoft SQL Server 7.0 中引入了一项重大改进:一个在很大程度上可以自行配置、自行优化和自行管理的数据库引擎。在 SQL Server 7.0 面世之前,大多数数据库服务器都会耗费数据库管理员大量的时间和精力,他们必须手动优化服务器配置以获得最佳性能。实际上,很多竞争性数据库产品现在仍要求管理员手动配置和优化他们的数据库服务器。这是许多客户改用 SQL Server 的主要原因。SQL Server 2000 是在 SQL Server 7.0 奠定的坚实基础上更上层楼的产品。SQL Server 的目标是:通过实现数据库引擎自行优化并允许 DBA 自动完成管理任务,使 DBA 不必手动配置和不断优化数据库服务器。
尽管现在仍可以手动配置和调整一些 sp_configure 选项,但建议数据库管理员尽量不要这样做,而是让 SQL Server 自动配置和优化。对于这种调整能力,SQL Server 7.0 具有已被广泛认可且经过实践证明的成绩记录,SQL Server 2000 对此方案进行了显著的改进。环境中不断变化的条件可能会对数据库性能产生负面影响,所以,让 SQL Server 自行优化,就可以使数据库服务器进行动态调整以适应这些变化。
性能优化的基本原则 您可以采取许多措施来管理数据库的性能。SQL Server 2000 提供了几种工具来帮助您完成这些任务。
管理性能 让 SQL Server 完成大多数优化任务。 SQL Server 2000 经过了重大改进,可以创建基本上能够进行自动配置和自行优化的数据库服务器。利用 SQL Server 自动优化设置这一优点,可帮助 SQL Server 即使在用户负荷和查询随时间不断变化的情况下也能以最高性能运行。
管理 RAM 缓存。 RAM 是一种有限的资源。任何数据库服务器环境的一个主要部分就是管理随机存取存储器 (RAM) 缓冲区缓存。访问 RAM 缓存中的数据比访问磁盘中同样的信息要快得多。但是,RAM 资源是有限的。如果可以将数据库 I/O(针对物理磁盘子系统的输入/输出操作)减少到最低所需的数据集和索引页,这些页将在 RAM 中停留更长时间。如果流入缓冲区缓存的不必要的数据和索引信息过多,会将有价值的页很快排挤出去。性能优化的主要目标是减少 I/O,以使缓冲区缓存得到最充分的利用。
创建和维护合适的索引。 对于所有的数据库查询,维护最小 I/O 的一个关键因素是确保创建和维护合适的索引。
对大数据集和索引进行分区。 要减少总体 I/O 争用现象并改善并行操作,请考虑对表数据和索引进行分区。本章介绍了使用 SQL Server 2000 实现和管理分区的多种方法。
监视磁盘 I/O 子系统的性能。 物理磁盘子系统必须为数据库服务器提供足够的 I/O 处理能力,以使数据库服务器在运行时不会出现磁盘排队现象。磁盘排队现象会导致性能不佳。本文介绍了如何检测磁盘 I/O 问题以及如何解决这些问题。
优化应用程序和查询。 当数据库服务器通过给定的应用程序为来自成百上千个连接的请求提供服务时,这种优化变得尤为重要。由于应用程序通常会确定
要在数据库服务器上执行的 SQL 查询,所以应用程序开发人员一定要了解 SQL Server 的结构基础知识以及如何充分利用 SQL Server 的索引来最小化 I/O。
优化活动数据。 在许多商业智能数据库中,绝大多数数据库活动都会涉及最近一个月或一个季度的数据(多达 80% 的数据库活动都可能是因最近装载的数据而发生的)。要保持良好的数据库总体性能,在对这些数据进行装载、索引和分区时,所采取的方式一定要能够为这些数据提供最佳的数据访问性能。
利用 SQL Server 性能工具 SQL 事件探查器和索引优化向导 SQL 事件探查器可用于监视和记录 SQL Server 的工作负荷。然后,可以将记录下来的工作负荷可以提交到索引优化向导,这样,在必要的时候就可以更改索引来帮助提高性能。SQL 事件探查器和索引优化向导可帮助管理员实现优化的索引。定期使用这些工具可使 SQL Server 保持良好的性能,即使查询工作负荷随时间而变化也是如此。
SQL 查询分析器和图形执行计划 在 SQL Server 2000 中,SQL 查询分析器提供了“图形执行计划”,使用这种方法可以方便地分析有问题的 SQL 查询。“统计 I/O”是 SQL 查询分析器的另一个重要功能,本章后面将会进行介绍。
系统监视器对象 SQL Server 提供了一组系统监视器对象和计数器,可以为监视和分析 SQL Server 的运行状况提供信息。本章介绍了要监视的关键计数器。
详细文章:http://www.microsoft.com/china/technet/prodtechnol/sql/2000/maintain/c2061.asp
|