论文部分内容阅读
数据库是数据库应用程序的基础与核心。随着数据库规模的迅速增长以及并发访问用户的增加,数据库的性能对数据库应用程序的访问速度起着决定性的作用。因此,对数据库进行优化是每个应用程序都必须面临的问题。
数据库不是独立存在的,与硬件、操作系统、网络、应用系统等都有着密切的关联,所以优化应该从各个方面考虑,并贯穿于系统的整个生命周期,因为从设计到开发再到维护,每个步骤都可能对最终的数据库性能产生影响。数据库性能优化周期可以分为两个阶段,一个是设计与开发阶段,主要负责对数据库逻辑结构和物理结构的优化设计,使其在满足具体业务需求的前提下,以最小的系统开销获得最佳的系统性能。第二是数据库的运行阶段,主要是对系统的软硬件环境配置、查询语句以及在不修改数据库的逻辑设计的基础上对数据库的物理设计进行优化。在优化的过程中,不但需要广泛且深入的数据库原理和系统实现知识,还要具有扎实的应用设计能力同时充分熟悉操作系统有关的软硬件环境。
本文先对数据库的性能定义、评价指标和优化的类型进行了概述。其次对Windows Server2003和SQL Server2005所提供的各种性能监视和优化工具进行介绍与说明。接着,分别从CPU优化、内存优化、磁盘优化、操作系统及DBMS配置、数据库的逻辑设计和物理设计以及查询优化等方面全面且深入分析了SQL Server数据库的性能优化技术。最后,本文以某一网络交友门户网站的数据库的优化作为应用实例,分析了优化周期第二阶段的优化过程,提出受限环境下数据库性能优化的流程和方法。
由于大部分的在线系统都不允许长时间地停机来进行优化实验及测试,只能在实验室里对数据库进行优化实验。与实际生产环境相比,实验室环境将受到一定的条件限制。本文提出受限环境下数据库性能优化的流程,将受限环境下的数据库优化过程分为四个阶段:数据采集、猜测瓶颈并设定优化目标、执行优化、优化效果评估。并且,根据实际需要,编写了两个应用工具。其中工具querytool能够对跟踪表中的查询语句进行格式化设置,对相同格式但参数不同的语句进行归类分析,得出各类语句的签名、查询频度及示例等信息,并存储到XML文件中,作为另一个工具pertst的测试脚本。pertst为性能测试工具,通过设定一定的并发度,多线程地调用从实际生产环境中捕获的查询语句,对指定的数据库进行性能测试,得出数据库访问的平均响应时间,最大最小响应时间等数据,从而可以评价优化的效果。