Oracle数据库应用系统的性能优化

2017-12-29 10:55韦德昌辽宁锦州渤海大学信息科学与技术学院
数码世界 2017年4期
关键词:数据库系统缓冲区磁盘

韦德昌 辽宁锦州渤海大学信息科学与技术学院

Oracle数据库应用系统的性能优化

韦德昌 辽宁锦州渤海大学信息科学与技术学院

Oracle是被人们熟知的数据库,随着数据库的用户占用率不断增多的现象,数据库的整体性能出现滑坡。本文提出了关于Oracle数据库性能优化问题以及改善方案,直接影响系统性能和数据库运行效率,通过研究和分析哪些的因素能够影响Oracle数据库的性能优化,确定一种数据优化方案为本文的研究目标,其中包括:内存优化技术、表分区技术、I/O优化技术、索引技术和SQL优化技术等,期望通过本文的方法使得数据库操作性能达到最优化,经过本文研究表明:优化的系统性能和系统运行效率都得以改善。

Oracle 数据库 应用系统 性能优化 内存分配

1 引言

当前,Oracle数据库被广泛地应用到各种领域中,如政府机关、公安警务、电信业务、金融领域、能源等多个职能部门,并已逐渐深入到企业数据库管理平台,但是随着Oracle逐渐深入扩大,Oracle是用户使用量最多的管理系统,对于选择大型数据库作为软件开发的基础平台而言,是软件运行的基础部分。同时,系统性能也是数据库评价的重要参数。但是,在实际实践中,随着用户量不断增多和访问量急剧上升,系统中需要处理的数据不断增多,系统的性能也随之下降,有必要对其性能进行优化,因此,在满足系统需求条件之下,数据库性能优化变得极其重要,数据库性能处于最佳和系统开销最小,以达到系统运行的最优的状态。

2 系统性能优化指标

2.1 如何提高系统吞吐量

数据库吞吐量按照其在单位时间内(单位:秒)所执行的SQL语句总共条数,其公示表示为:吞吐量=系统执行事务语句条数/单位时间(秒),通常用TPS表示吞吐量,其最终要实现性能优化问题,提高吞吐量是对数据库系统性能加以提升。

2.2 如何缩短响应时间

数据库系统的响应时间需要提交到后台,提交SQL事务后返回查询结果共计响应时间,为了提升系统的整体性能指标,通过减小系统用户和请求时间与系统响应时间之差获取的时间戳,来实现缩短用户等待时间的目的,通过缩短系统响应时间,既可实现减少用户请求时间,并提升系统性能和资源使用比。

2.3 如何优化磁盘I/O

Oracle将数据储放磁盘或者内存数据块中,如果想要往数据库中读写数据操作时,必须有I/O操作,合理规划磁盘的读写数据操作,基于高速缓存技术实现吞吐量的提高,用户请求缩短系统响应时间,有效利用系统物理内存空间,避免过多的使用磁盘I/O读写操作。

2.4 如何提高数据库命中率

Oracle数据库用户进程所使用的全部数据尽量都在高速缓冲区中获取,因为针对高速缓冲区的读写速度快。用户获取数据目标能否在缓冲区中得到满足,并缩短了数据库的响应时间,提高在高速缓冲区数据读写命中率,以这种方式衡量数据库系统性能的一种方式。

2.5 如何实现合理使用内存

在数据并发量要求较大的情况下,如果Oracle数据库内存空间不够则影响数据库处理效率降低,延迟用户请求的响应时间,如果内存空间合理使用,多数情况下可以得到最大效率和占用最小的系统内存空间,以这两个评价参数作为合理使用内存的判断,通过合理使用系统的内存空间,方可大大提高数据库的使用性能。

2.6 如何减小磁盘排序

当用户请求提交的某一条SQL事务时,此事务中包括了聚合函数或者数据排序时,有可能数据排序在内存中实现,或许在物理磁盘上实现数据排序的功能。但是,由于数据库读写操作在物理磁盘上进行,再加上磁盘自身结构存在的问题,其实现读写操作的速度远远低于位于内存中的数据,因此,数据库的优化原则避免在物理磁盘上实现数据排序操作。

3 影响数据库性能因素

影响数据性能的原因有很多种因素,例如:操作系统性能、CPU参数设置、内存分配不当、Oracle数据库配置问题、数据读写的I/O操作冲突、数据在网络传输速度偏低以及SQL语句出现逻辑错误等,以上因素都会影响数据库的整体性能。

①操作系统性能。Oracle的服务器在某种程度上所依赖于运行在操作系统上的服务器,操作系统参数配置不当会影响数据的性能。

②CPU参数设置。CPU是数据库运行的重要硬件,CPU资源被事务占用过高的比例,会导致其他事务暂停运行,而使其他事务的响应时间延迟,当系统空闲时,CPU占用率已经达到80%,表明Oracle服务器参数设置不当。

③I/O数据读写冲突操作。由于磁盘操作只运行一个进程读写操作,当几个进程同时进行读写磁盘数据时,数据库会针对进程进行互斥操作防止数据读写冲突。

④Oracle参数设置。后台进程与实例之间都位于系统的内存中,正确设置Oracle参数会优化数据库系统性能。

⑤内存分配不当。当操作系统为了扩大虚拟内存而进行重新分配内存,它实际上利用了磁盘空间。当实际内存不能满足软件需求时,操作系统不断的从磁盘空间与内存进行页面的替换操作,优化内存分配不当操作的主要目是为了减少内存交换次数,减少分页,尽量在高速缓存中进行数据读取操作等。

⑥数据在网络传输速度偏低。网络在某种程度上影响数据库系统的整体性能,如果网速慢则导致网络负荷量增加,从而降低数据的传输速率和系统的吞吐量,延长用户请求等待的响应时间。

⑦SQL语句出现逻辑错误。存在大量递归的SQL事务,如果全表扫描所需要的等待时间较长,数据库表结构设置和约束条件设置不合理,不合理的设置I/O数据读取操作,使用非标准SQL语句参数,使用执行效率低的SQL事务实现数据的读取操作。

4 数据库性能优化方案

4.1 优化软件系统

数据库的性能体现在软件系统性能上,很多问题由于软件系统某些缺陷导致数据库的死锁、运行效率降低等。企业的信息化系统为了加快软件系统的开发进程,对软件系统开发和测试设计上不合理,系统测试不全面、不合理、不精确。例如说,在进行大规模系统测试时使用简单的测试方案,系统在运行一个时期之后出现性能下降的现象,这表明软件的整体性能存在问题的体现。测试时必须要结合多用户、高并发量的测试过程,并充分分析测试结论。一个软件系统的整体性能的优劣完全取决于Oracle数据库的性能。

4.2 优化数据库的SQL语句

SQL语句的优化是提高数据库性能的重要方面。优化的SQL语句不仅降低I/O数据读取操作次数,而且重要的是降低占用网络传输带宽。因此,高可靠的数据库系统不单单是完成简单的数据存取操作,更重要的是完成已经优化的SQL事务,从根本上提高数据库系统运行效率。常见的SQL优化语句包括下面几个:

为多个数据表建立索引结构、尽量避免语句操作在字符串查询结构中包含多个模糊字母,并尽量使用读操作模拟加锁操作等。

数据库系统的全部操作都是通过执行SQL事务来完成的,其中不乏有简单的增删改查操作。因此,在很大程度上,Oracle数据库的整体性能好坏决定SQL事务的运行效率,为了尽量提高SQL事务的运行效率,另外,编写SQL语句应该关注下面的内容:

①建立数据表分区,减少全表扫描操作,占用系统内存,实现数据分区查询操作。

②对于常用数据表实现查询操作,建立表索引以减少执行的SQL事务数量。

③常用的多个数据表存储到统一的数据块中。

“以我观物,万物皆着我色彩”,这一段歌词中丰富的典故使用加上恰如其分的修辞格使人们瞬间产生在“名落孙山”的秀才眼中世界原来是如此悲凉。

④在数据查询时,针对需要多表连接查询的数据操作需要有充分表连接条件。

优化Oracle数据库系统性能需要通过实践积累经验、总结的改进过程,必须要熟悉影响数据库整体性能的主要因素,针对影响因素而采取不同方案加以优化系统性能,同时也要考虑到基于先进优化技术对数据库系统加以优化操作,使得系统的整体性能达到最优的状态。

4.3 优化数据库系统内存参数

SGA表示数据库系统内存的全局参数设置区。它能够被服务器和联网用户所共享,其中:共享数据池、高速缓冲区,日志访问区。共享数据池是存放SQL事务和数据字典的空间。高速缓冲区的缓存空间越大,表示可容内存数据多,磁盘I/O操作次数减少,数据库性能就得到极大优化;日志访问区如果设置缓存区过小,会导致存储空间不足的情况,降低数据库系统的性能。

4.4 优化数据库缓冲区性能

为减少访问磁盘I/O操作带来的开销,应优化高速缓冲区的空间,使得进程尽量在高速缓冲区上获取数据,尽量减少用户请求时发生等待时间。当加大BufferCache的存储空间时,可以设置DB_ CACHE_SIZE参数变大,使用多个数据缓冲池时,缓存池中数据尽量保存在其中,通过使用多个数据缓冲池的目的是为了提高数据在高速缓存区上的命中率。

4.5 优化磁盘I/O

数据库要实现将最终数据存储到物理磁盘上。因此,避免不了发生磁盘I/O读写操作,数据库性能也因此受到影响,此时已经消耗Oracle数据库最多的操作时间,为了避免对系统性能带来的影响,监控磁盘I/O读写操作是非常关键的步骤。影响磁盘I/O读写操作包括:磁盘读写进程死锁现象、I/O操作次数过多等。

4.6 磁盘碎片整理

磁盘数据碎片的产生由于删除数据导致的,因为系统删除数据操作出现,系统数据存储区域不断发生变化,磁盘数据碎片分别为:表级碎片和索引级碎片。

①表级碎片由于设置合适的数据块数量,由于数据库的数据存储是间断的,在创建数据库表结构时,根据用户需求数据记录大小来选择相应的数据规模,提高系统中数据块利用效率。

②索引级碎片是因为查询表的索引结构过于频繁而致,经过B-TREE数据结构和叶子的数据排序而导致,可以减少查询索引结构的数据,尤其是系统中变化频率较少数据块,目的是降低索引碎片的形成。

5 本文结论与未来研究方向

软件系统工程,需要工程师认真设计系统优化问题,对数据库性能进行优化操作。Oracle数据库性能优化设计与优化阶段,需要在数据库运行时不断优化系统的性能,为优化一个高效的数据库系统打下基础。

[1]盖国强.循序渐进Oracle数据库管理、优化与备份恢复[M].北京:人民邮电出版社,2007

[2]赵梦勤,李秀兰.ORACLE数据库应用系统的优化策略[J].计算机工程与应用.2003(27):217-218

猜你喜欢
数据库系统缓冲区磁盘
它的好 它的坏 详解动态磁盘
基于Oracle数据库系统的备份和恢复技术
创建虚拟机磁盘方式的选择
解决Windows磁盘签名冲突
Oracle数据库系统的性能优化研究
串行连续生产线的可用度与缓冲库存控制研究*
计算机数据库系统在企业管理中的应用
基于ARC的闪存数据库缓冲区算法①
Windows系统下动态磁盘卷的分析与研究
数据库系统在计算机体系结构中的应用