Oracle数据库系统性能优化与调整

2010-08-15 00:43戴伟敏
赤峰学院学报·自然科学版 2010年12期
关键词:数据库系统缓冲区日志

戴伟敏

(福州大学 阳光学院基础部,福建 福州 350000)

Oracle数据库系统性能优化与调整

戴伟敏

(福州大学 阳光学院基础部,福建 福州 350000)

Oracle数据库是当前人们应用最广泛的数据库之一,随着Oracle数据库使用用户的数量增多,数据库系统性能也逐渐暴露出它的缺陷。如何有效保证Oracle数据库高效运行,优化、调整数据库性能是我们必须解决好的问题.本文试从性能优化与调整概述入手,重点分析影响Oracle数据库系统性能的原因,然后详细阐述Oracle数据库系统优化策略,通过这些数据库系统优化策略的介绍,期望能使Oracle数据库系统得到最优的操作性能.

Oracle数据库;性能优化与调整;策略

Oracle数据库是目前用户使用最为广泛的数据库管理系统,选择使用Oracle作为数据库应用系统的用户,一般是需要处理的数据量较多,对于这种大型数据库来说,数据库运行效率是最重要的.同时,运行效率也是数据库评估的重要指标之一.然而,在实际应用中,随着访问量的加大,需要处理的数据日益增加,数据库系统的性能也将下降,为此,数据库系统性能优化与调整将突显出其更为重要作用.

1 性能优化与调整概述

性能优化指通过改善系统组件的性能,以最大限度地增加数据库的吞吐量和相应响应时间的最小化.Oracle数据库性能优化所遵循的原则:通过尽量少的磁盘访问获得用户需要的数据.

性能调整是指通过修改系统参数、改变系统配置、优化应用程序等方式来改变系统性能.它包括对操作系统、硬件设置等系统进行优化配置,以及对访问这些组件的应用的详细分析与优化.

2 影响Oracle数据库系统性能的因素

Oracle数据库系统的运行效率会受到来自各个方面的影响,而这些影响也在不同程度上制约着数据库系统性能的发挥,具体说来,主要体现在以下几个方面中:

2.1 Oracle数据库服务器的性能.数据库系统的关键部分在于服务器,而服务器性能的好坏直接决定着整个系统能否顺利的运转.而服务器的操作系统和硬件设施又直接决定着服务器性能的好坏.

2.2 数据库的配置.实际上,数据库的配置情况是才是影响数据库系统性能的主要原因,可以说它是整个数据库得以优化的关键和核心之所在.数据库配置的优化主要包括内存区的优化、网络I/O的设置、CPU优化以及碎片整理等等.

2.3 网络I/O的设置.网络I/O的设置对于数据库系统性能的优劣也起着不可小觑的重要作用.因为执行命令的应用程序是要通过网络与数据库的服务器产生作用的.

2.4 应用程序的运用.应用程序的应用也在一定程度上影响着数据库性能的优劣.特别是关于SQL语句的应用、程序设计、对象的使用情况、数据库连接方式等等,这些因素都或多或少地影响了数据库的运行效率.

3 Oracle数据库系统性能优化与调整策略

任何一个数据库管理系统都会面临数据库运行效率的问题,在了解了影响数据库系统性能的因素之后,我们可以从这些因素入手,对症下药将数据库的性能调整到最优.具体说来主要是从以下几个方面对Oracle数据库系统性能进行优化与调整:

3.1 内存区设置的优化

Oracle数据库的内存结构主要分为两部分:SGA和PGA.这两部分内存结构的分配是否合理决定着数据库系统的性能.其中SGA是Oracle数据库的核心与灵魂,是对数据库数据进行快速访问的一个系统区域,主要是由共享池,数据缓冲区和日志缓冲区三部分组成.

3.1.1 共享池的优化与调整.共享池的优化与调整主要是通过缩短操作时间来实现的.具体说来,就是指对于之前已经分析过的模本,执行命令的语句可以在共享池中找到并进行重用,不需要再消耗时间另外进行解析.这样一来就要求我们在对共享池进行优化的时候,要尽量保证存放在数据库中的信息在应用程序中能够经常被访问到.因此,我们可以通过数据库缓冲区的命中率来了解到共享池的合适程度.

3.1.2 数据缓冲区的调整.数据缓冲区的调整同样可以缩短操作时间.用户在进行数据检索时相关数据已经存储于缓冲区中.如果用户进行检索查询的相关数据包含在缓冲区中,那么系统将会通过缓冲区直接将数据传送给用户,相反,如果用户所查询的数据不在缓冲区内,那么系统会先从数据文件中通过服务器进程将数据读取出来发送到缓冲区里,然后再按照之前所讲述的方式由缓冲区发送给用户,这样一来就多了一个中间环节,使得操作时间增长.因此,当用户进行数据查询时,也要尽可能多的保证在缓冲区内有足够多的相关数据,只有这样才能很好的提高数据缓冲区的性能.

3.1.3 调整日志缓冲区.日志缓冲区的作用在于将修改的数据信息存放于此.为了将日志写进日志文件,首先要将日志放入缓冲区,然后由LGWR进程在相关条件满足时将已存放在日志缓冲区的日志信息写入到日志文件里.若日志缓冲区没有足够的空间存放信息,日志就无法写入,也就是说写入失败.这样也会导致网络I/O的运行频繁,严重影响了数据库的系统性能.

3.1.4 PGA的调整.PGA区的主要构成部分是由会话区和排序区.其中,排序区的设置对数据库的性能影响重大.在排序的方式上,主要有两种方式,一种是在PGA的排序区进行排序.一种是在临时表空间的临时段中进行排序.但是,在使用临时段进行排序时,因要对磁盘进行网络I/O操作,这样就延长了运行时间,影响了排序效率.所以,在排序时,要尽量多用排序区进行排序操作.

3.2 磁盘I/O优化

对于数据库系统来说,磁盘I/O操作是数据库性能优化最重要的方面,磁盘I/O性能优劣取决于多个方面的影响.其中有I/O操作次数过多,数据块空间的分配等原因.那么减少I/O操作的次数最有效的办法就是将使用频率搞的数据存放在缓冲区内,同时也要降低Oracle服务器查询信息的时间,方法之一就是分区和建立索引.

3.2.1 优化设计索引Index.数据库中非常重要的结构就包括了索引,它是优化性能的基础.原因在于索引能够快速找到需查找数据的地址.有效利用索引,从而提高访问数据库的速度,这样就提高了查询效率.同时可以利用索引减少数据库中的磁盘读写次数.在建立索引时,也要注意并是不建立更多的索引就越好,虽然有着合理科学的索引数据库比没有建立索引数据库的效率要高好几十倍,但如果有些索引经常需要修改,这样不仅影响了系统性能,也占据了系统的存储空间.

3.2.2 有效利用分区技术.分区可以将不同的信息数据保存在不同的磁盘里,这是将数据在数据库中进行物理区分.在利用分区技术时,把需要查询的数据在不同的分区中进行扫描,可以大大缩短查询时间,而不要进行全表扫描.在进行分区的同时,可将数据分散到不同的磁盘中,这样磁盘I/O也不会竞争严重了.

3.3 设置回滚段

在Oracle 数据库中,回滚段设置的目的是保存数据的原始版本,利用初始版本可以撤销用户未保存的资料.Oracle数据库的作用之一就是可以从系统操作的失败中得到数据的恢复,在此,就体现出了回滚段在数据处理中的重要作用.在优化回滚段时,也要根据用处的大小建立大小不等的回滚段,并且将这些回滚段分散到不同的分区中.

3.4 碎片整理

数据碎片的产生是必然的,因为系统操作的不断出现,数据对象的不断变化,由此产生的碎片可以分为三类,分别为表空间级、表级和索引级.

3.4.1 表空间级碎片是最基础的碎片,往往是由于一些基本的操作引起的,例如执行命令的建立、删除等等.优化的措施可以通过执行导出命令将数据导出,接着利用TRUNCATE 删除导出的数据,最后再利用有效的程度将表空间级碎片清除.

3.4.2 表级碎片的产生可以通过设置合适的数据块来消除,它是由于数据库存储不连续所致.在创建数据库时,根据所需记录的数据大小来设置相应的数据块大小,可以提高数据块系统的运行效率.

3.4.3 索引级碎片是由于索引过于频繁所致,通过干扰B-TREE结构和叶节点的排序引起的.调整的措施可以减少已建立索引的数据数量,特别是变化频率较低的数据,这样可以降低索引碎片的产生.

3.5 CPU性能调整

通过对CPU性能的调整可以有效利用数据库中的各种资源,提高数据块的性能.

3.5.1 尽可能多地使用多个CPU来处理用户的事务,如果有可能的话,需要将服务器和CPU请求分开.

3.5.2 在进行数据查询时,可以使用PQO查询方式.PQO方式可以在不同的磁盘中同时进行SQL语句的执行处理,同时进行数据的读取.

3.6 SQL语句的优化

数据库所以的操作都是通过SQL语句来执行的.包括最简单的添加和删除.所以,Oracle数据库的性能高低在很大程度上也取决于SQL语句的执行效率,为尽量提高SQL语句的执行效率,在书写SQL语句时应注意以下几点.

(1)建立分区后,减少全表扫描,而要分区查询.

(2)对于需要经常进行查询的表,可以通过建立索引减少SQL语句的执行.

(3)将多个常用表放在一个数据块里.

(4)在查询时,对于需要连接的查询要有充分的连接条件.

Oracle数据库系统性能优化与调整是一个需要通过不断摸索、总结的过程,在实践中,必须先了解影响数据库系统性能的因素,针对这些不同的因素采取不同的有效措施予以调整,同时也需要我们采取更加先进的技术来对数据库进行调优,使得数据库系统获得最优性能.

〔1〕仇道霞,陆伟,侯晓辉:Oracle数据库性能调整优化[J].山东轻工业学院学报(自然科学版),2010(3).

〔2〕孙富伟,晏斌.Oracle数据库优化策略的探讨与研究[J].河南科技,2010(10).

〔3〕魏亚楠,宋义秋.oracle数据库应用系统的性能优化[J].制造业自动化,2010(8).

TP 311.132.3

A

1673-260X(2010)12-0041-02

猜你喜欢
数据库系统缓冲区日志
一名老党员的工作日志
扶贫日志
基于网络聚类与自适应概率的数据库缓冲区替换*
游学日志
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
实时数据库系统数据安全采集方案
核反应堆材料数据库系统及其应用
关键链技术缓冲区的确定方法研究
初涉缓冲区