邹元杰
摘 要:理解数据库性能调整与优化架构是一个很重要的环节,对它们的理解将有助人们在优化数据库性能的过程中明确什么是性能调整与优化、评价性能的指标有哪些、数据库优化应该从哪些方面进行以及优化方法有哪些等。
关键词:数据库;性能调整;优化架构
1性能调整与优化概述
性能调整是通过优化应用程序、修改系统参数和系统配置(硬件调整)来改变系统性能。性能调整包括硬件配置、操作系统与数据库管理系统配置,以及对访问这些组件的应用的详细分析与优化。
性能优化是指进行有目的地调整组件以改善性能,使得数据库的吞吐量最大限度地增加,相应的响应时间达到最小化。数据库性能优化的基本原则是:通过尽可能少的磁盘访问获得所需要的数据。性能调整与优化的过程在某种程度上说是循环的,要达到性能优化的目的,通常需要进行适当的性能调整,然后再查看优化结果,如此反复,直到达到满意的效果为止。
2数据库系统性能评价指标
通常评价Oracle數据库性能的指标主要有系统吞吐量、数据库用户响应时间、数据库命中率、内存使用情况以及所需的磁盘I/0量。
2.1系统吞吐量
吞吐量是指单位时间内数据库完成的SQL语句数目,以每秒钟的事务量(tps)表示。为了使系统能够达到它的最高吞吐量,将不得不牺牲系统性能的其他方面,如系统响应时间、容错能力等 。
提高系统吞吐量有两种方法:
①减少服务时间使得在同样的资源环境下做更多的工作;
②减少总的响应时间使工作做得更快。
2.2用户响应时间
响应时间是指用户从提交SQL语句开始到获得结果集的第一行所需要的时间,是应用做出反应的时间,以毫秒或秒表示。在任何一个系统中,吞吐量和响应时间作为调整目标通常是互相对立的。获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率 。
2.3数据库命中率
这一比率是高速缓存命中总数除以自Oracle实例启动后对高速缓存的查找总数。缓冲区高速缓存的命中率,对性能至关重要。由于从高速缓存中读数据比从磁盘中读数据的开销要小得多,因此一般应使其尽可能高一些。
2.4内存使用情况
内存的使用情况主要体现在可共享内存、永久性内存和运行时内存这三者的分配使用上。实现内存合理使用,一般考虑的主要调整目标有两条:
①使投资得到最大回报。把时间和精力用于解决很有可能产生最大利益的问题上;
②使争用减到最小。瓶颈的特点在于延迟和等待,尽可能地消除或减少它。
2.5磁盘I/O
数据库中发生的每个动作几乎都将产生某种类型的I/O活动,该活动可以是逻辑的(在内存中),也可以是物理的(在磁盘上)。通过降低不必要的I/O开销可以增加用户任务获得的吞吐量,缩短用户响应时间 。其中,磁盘I/O操作是数据库性能最重要的方面,是计算机最大的开销。因此,通过减少不必要的磁盘I/O,可以大大提高系统性能。
3数据库性能优化的主要方面
无论哪一个数据库管理系统都会出现数据库运行效率问题,要使数据库的性能达到最大化,需从操作系统、硬件性能、数据库结构、Oracle资源配置、Oracle实例性能和SQL 语句执行等方面进行综合考虑,这些方面是相互依赖的。
3.1调整与优化数据库设计
在开发信息系统之前,首要的任务是数据库设计人员提供一个合理的数据库设计方案。若数据库结构设计有问题,Oracle系统本身提供的优化技术不可能使得数据库性能达到一个满意的效果。在设计阶段对数据库设计进行论证和调整优化,将保证后期开发维护中各种优化技术发挥应有的作用,使得以更小的代价实现系统性能的最大的提升。
3.2调整应用程序结构设计
不同的应用程序体系结构对数据库资源要求不同。目前,常用的应用程序结构有C/S两层体系结构、B/S三层体系结构和多层体系结构。选择使用哪种体系结构参考的指标主要包括:应用系统的规模、用户数量、使用的数据库数量、对网络安全性和流量的要求等。
3.3优化应用程序
SQL语句消耗了70%至90%的数据库资源,而应用程序对数据库的操作最终表现为SQL语句对数据库的操作,通过对劣质SQL语句以及访问数据库方法的调整,可以显著地改善一个系统的性能,对提高数据库内存区的命中率、减少I/O访问、减少对网络带宽占用等有着非常重要的意义。
3.4调整数据库内存分配
内存分配是在信息系统运行过程中进行的,通过调整内存,提高缓冲区的命中率,将大大影响系统的性能。最佳的调整时机是在数据库文件物理调整和磁盘I/O调整之前进行。
3.5调整与优化磁盘I/O
影响磁盘I/O性能的主要原因有磁盘竞争、I/O次数过多和数据块空间的分配管理等,为了避免与I/O相关的性能瓶颈,监控磁盘I/O并对其进行调整非常重要。
3.6配置和调整操作系统性能
Oracle数据库服务器的整体性能很大程度上依赖于操作系统的性能,如果操作系统不能提供优越的性能,那么无论怎么调整数据库也不能发挥其应有的性能。实施操作系统级调整的主要目的是减少内存交换,减少分页,使SGA可留驻内存 。可以从以下几个方面着手:
①为Oracle规划系统资源;
②调整计算机系统中的内存配置;
③为Oracle数据库服务器设置操作系统进程优先级;
④对OS参数进行设置。
3.7配置与调整数据库服务器硬件性能
与数据库有关的硬件设计主要包括CPU、内存、磁盘子系统和网络这四个部分 。许多典型的性能问题是由不充足的或配置失当的硬件组件导致的,其中计算机内存和CPU严重影响数据库系统的能力。硬件调整是为要求的工作量提供足够的硬件资源的行动,包括数据库大小估计与容量规划。
4优化方法
在Oracle环境下,数据库性能优化调整原则上按以下几步进行:
4.1有条理的采用各种监测手段收集数据,发现性能问题。
4.2做出令人信服的调整(一次只建议改动一两处)。
4.3收集统计信息,得到调整后的性能。
4.4重复以上操作直至性能调整满意为止。