APP下载

企业应用系统性能优化研究

2009-07-07

消费导刊 2009年12期
关键词:铁通性能优化

许 冬

[摘 要]数据库系统的性能最终决定数据库的可用性和生命力。大多数数据库系统在运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件、数据库服务器、数据库内存、应用程序、操作系统、数据库参数等方面。本文介绍了数据库性能调整的相关研究背景、论文选题意义以及数据库性能调整与优化概念、性能评价指标以及数据库优化的主要方面;然后,对性能优化进行了研究,结合Oracle9i数据库的使用经验,将SQL语句、Oracle内存分配等方面的性能调整与优化问题作为主要研究内容,给出了针对新疆铁通数据库服务系统性能的调整策略及优化方法。

[关键词]铁通 数据库服务系统 性能 优化

一、绪论

数据库应用系统性能调整和优化是一迭代过程,从系统的开发、测试到运行不断优化的过程。它主要包括调整和优化硬件配置、应用程序、Web服务器、数据库管理系统、操作系统和网络资源等等。通过调整和优化可以提升整个数据库应用系统的性能,使整个系统达到理想的运行效果,从而降低系统开发所需成本。

二、数据库服务系统的功能和问题

(一)数据库服务系统的功能要求

新疆铁通数据库服务系统是一个非常重要的应用系统。为满足业务发展和提高铁通服务质量的要求,铁通服务网的规模经不断的升级扩容, 不但网络规模越来越大,主机和数据库的性能和容量也在不断提高和扩大。数据库以运行ORACLE为主。由于新疆铁通数据库服务系统的重要性,所以对它的功能有以下要求:

(1)系统的高性能要求:每天都会有大量的数据需要进行写入或者是读出,这就要求数据库服务系统能够保证较短的用户响应时间,较高的数据吞吐率,这些归结到一点就是要求有很高的性能,尤其是需要防止有人恶意破坏,即要使整个系统能够承受这种爆炸性的访问,保证整个系统将正常高效运行。

(2)数据的决对安全保密性:考生的高考志愿信息要求决对的安全可靠,不能被泄露,更改。数据库是企业信息的核心,其应用水平的高低直接影响到企业管理水平。选择了一个高性能的数据库产品不等于就有一个好的数据库应用系统,如果数据库系统设计不合理,不仅会增加客户端和服务器端程序的编程和维护的难度,而且还会影响系统实际运行的性能。

(二)数据库系统性能需求和性能问题

由于铁通数据库服务系统的重要性,所以要求系统必须是高可用性数据库。高可用性数据库系统具有四个基本特征:

(1)可靠性:系统很少出故障,平均故障间隔时间足够长;(2)可恢复性:一旦系统出现故障,系统能够及时报警,并能在短时间内恢复;(3)连续运转:系统能够提供连续的服务,一旦某一节点出现故障,系统内的其它节点能立刻接管故障节点的所有已产生的业务,不会出现所有节点都故障的情况,而且数据库维护与管理是联机进行,不会停机。;(4)高性能:系统能够提供性能优良的服务,而且性能的提高不以停机时间的增加为代价,通常是通过联机进行规模的扩大、调整和重组来实现的。(5)可用性是指应用程序或服务在用户使用它们时的可用程度。可用性是以系统运行和可用时间的百分比来衡量的,是表征计算机系统如何持续地对客户进行服务的尺度。

(1)用户响应时间长,当写入或者读出大量数据时,偶尔出现写入或者读取时间过长的问题,导致,不能同时满足大量操作;

(2)系统吞吐量小,内存使用太大,并且磁盘I/O操作速度慢。

三、数据库服务系统性能问题原因分析

(一)共享内存小:虽然各个数据库系统对内存的使用方法不尽相同,但为了实现高效率的访问,它们都提供了内存的共享技术。调优内存的目标就是尽可能地提高内存中可共享数据的命中率。

(二)存储结构不合理:不管是什么数据库系统,在设计自己的数据存储结构时都综合考虑了内存调度的高效性和方便性。比如从逻辑上考虑数据块(BLACK或者PAGE)的大小、区间(EXTENT或者扩展)的分配和增长方式等。

(三)磁盘I/O性能差:磁盘性能应该在操作系统级和数据库级进行综合的考虑。为了更好地平衡,在设计数据库系统时应根据应用的内容设计好数据的分布方案,特别是应重点考虑物理文件头的争用问题。验证I/O是否平衡可以通过检测各种I/O等待情况来判断。

(四)锁控制不合理:数据库系统对运行时的数据完整性保护主要是通过各种锁实现的,因此各个数据库系统都提供了类似的锁机制。

四、数据库服务系统性能优化

(一)系统性能指标和优化目标

数据库系统性能的判定标准依赖于性能衡量的研究。通常认为评价Oracle数据库系统的性能指标主要有以下几个方面:

(1)系统吞吐量

吞吐量是指单位时间内数据库完成的SQL语句数目,以每秒钟的事务量表示。提高系统吞吐量可以通过减少服务时间在同样的资源环境下做更多的工作或通过减少总的响应时间使工作做得更快这两种方法来实现。

(2)用户响应时间

响应时间是指用户从提交SQL语句开始到获得结果集的第一行所需要的时间,是应用做出反应的时间,以毫秒或秒表示。响应时间可以分为系统服务时间(CPU时间)和用户等待时间两项。也就是说,要获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。

(3)数据库命中率

Oracle用户进程所需的所有数据都是经过缓冲区高速缓存来存取的。用户对数据的需求能否在内存中得到满足,给出快速的响应,可用缓冲区高速缓存命中率来衡量。该比率等于高速缓存命中总数除以对高速缓存的查找总数。由于从高速缓存中读数据比从磁盘中读数据的开销要小得多,因此一般应使该命中率足够高。

(4)内存使用情况

内存的使用情况主要体现在可共享内存、永久性内存和运行时内存这三者的分配使用上。

(二)优化原则的方法

数据库应用系统性能调整和优化包括的内容比较广泛。对于各个系统所采用的软硬件资源不同,在调整和优化的具体方法上也有不同,在数据库的性能调优过程中需要应用程序设计人员、应用程序开发人员、数据库管理员以及系统管理员共同完成。

(1)调整服务器内存分配及相关参数:内存分配是在应用系统运行过程中优化配置的,以Oracle为例,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。合理地分配内存资源可以提高高速缓存的性能,降低SQL语句解析的时间,以及减少页面调度及换页。

(2)调整磁盘输入/输出和数据库物理结构:数据库的数据最终是存储在磁盘上的,对数据进行访问就是对这些磁盘进行读写,因此对于这些物理存储的优化是系统优化的一个重要部分。对物理存储进行优化虽然并不能够减少对物理存储的读写次数,但却可以使这些读写尽量并行,减少磁盘读写竞争,减少不必要的物理存储结构扩充,从而提高系统性能。

(3)优化数据库的操作:确保在应用中已充分利用为了提高性能而设计的SQL语句以及其中的一些特殊功能。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了数据库的性能。无论是书写新的还是调整已有的存在性能问题的SQL语句都要以占用更少的输入/输出等资源为主要目标。

(三)数据库服务系统性能优化策略

(1)优化SQL语句:SQL语句编写的好坏直接关系到应用程序的执行效率,因此,我们根据前面所介绍的SQL语句的优化技巧对系统中原有的SQL语句,尤其是涉及到多表连接且查询量较大的查询语句进行了仔细分析,并利用解释计划和SQL语句跟踪工具,对存在执行效率问题的SQL语句进行了优化重写。

(2)添加必要和适当的索引:通过对系统进行分析,发现可以利用索引技术来加快检索速度,提高系统性能。首先确定用户常用的字段,列出全部预索引字段,然后根据预索引字段的选择性以及前面所介绍的索引创建相关规则,在适当的字段上设置必要的索引。根据索引创建的相关规则可知,字段的选择性是创建索引的重要参考因素。通常索引字段应当是定长的,而且长度越短,效率就越高,对具有相同选择性的索引来说,应选择索引字段较短的那个。现在通过手工测量的方法获得所有预索引字段的选择性,从而确定在哪些字段创建索引可能使系统性能达到最优。

(3)合理分布表空间:后台进程将数据库中的事务分别写到联机日志文件、归档日志文件、数据文件中,这三个文件之间很容易发生I/O冲突。因此,数据库中的表及其索引使用的数据文件应该存放在独立的磁盘上,以避免查询期间的竞争;临时表空间与表和索引应分开存放;系统表空间与数据库其他部分应分开存放;在线重写日志文件与归档重写日志文件应分开存放。一般情况下,90%以上的I/O操作集中在系统表空间、数据表空间、索引表空间上,因此将这3个表空间单独存储在不同的磁盘上。

(4)优化Oracle内存分配:Oracle数据库管理系统具有内存敏感性的特点,系统效率可以通过调整内存分配得到很大提升。因此,无论何时,都必须尽可能有效地利用系统内存而尽量避免或推迟使用磁盘I/O操作。从查询语句使用分区、划分表空间、聚簇这些优化技术前后的SQL统计信息中我们发现一个非常严重的问题,那就是不管是否运用了分区、划分表空间,查询执行时的缓冲区高速缓存命中率都很低。

SGA是Oracle数据库的心脏,系统运行时Oracle9i Server可以通过调整以下参数动态改变缓冲区高速缓存、共享池、PGA区域等的大小,以实现数据库运行时动态调整其性能。

DB BLOCK SIZE:为减少数据链接和行迁移,提高磁盘空间的利用率,在设计数据库时就根据样例数据确定了合适的数据块大小,将其设为8k,并根据业务现状和未来发展趋势确定了存储参数。

SHARED POOL SIZE:系统中共享池的最初大小被设为32MB,远远不能满足实际需求。为了获得较好的SQL语句执行效率,将该参数设置为109051904字节。

DB CACHE SIZE:系统中该参数的默认大小48MB远远不能满足实际需求。为了将所需的数据块尽可能地缓存到内存中,减少磁盘I/O,将它增大为380M,即398458880字节。

五、总结

经过优化调整后,缓冲区高速缓存的命中率最低都达到90%以上,同时,由于高速缓存命中率的大幅度提高使得磁盘读取数下降,查询速度加快了近一倍。内存的合理分配是提高系统性能的一个非常重要的方面。不同优化方法的代价有所不同,针对不同的优化方法,在实际系统中必须根据具体情况进行适当的折中和平衡。

参考文献

[1]赵敏。基于SQL Server性能调整和测评方法[J]计算机工程,2000

[2]马琳。基于SQL Server的AWE内存调整研究[J],计算机应用研究,2000

[3]萨师煊,王珊。数据库系统概论(第三版)[M],北京:高等教育出版社,2002

[4]李峰,郭玉钗,林宗楷。Oracle数据库性能调整技术研究[J],计算机学报,1999

[5]党会军。数据库性能评测与分析[J],北京:国家智能计算机研究开发中心,2002

[6]段靖荒,林子禹,万丰。J2EE企业解决方案的平[J]台。计算机应用,2001

猜你喜欢

铁通性能优化
超限高层建筑结构设计与优化思考
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
铁通固话PSTN与移动IMS网络快速融合解决方案
中移铁通正式揭牌成立
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
强韧化PBT/PC共混物的制备与性能
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能