Oracle数据库性能调整与优化技术探讨.docx

上传人:知****量 文档编号:67654090 上传时间:2022-12-26 格式:DOCX 页数:5 大小:23.93KB
返回 下载 相关 举报
Oracle数据库性能调整与优化技术探讨.docx_第1页
第1页 / 共5页
Oracle数据库性能调整与优化技术探讨.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《Oracle数据库性能调整与优化技术探讨.docx》由会员分享,可在线阅读,更多相关《Oracle数据库性能调整与优化技术探讨.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Oracle数据库性能调整与优化技术探讨【摘要】Oracle数据库是当前应用最广泛的大型数据库,随着数据库数据量的增大、并发用户数量增多,系统常常出现吞吐量降低,响应时间变长的性能问题,如何有效优化、调整数据库性能,避免系统瓶颈,是保证Oracle数据库高效运行的基础。Oracle数据库系统性能优化、调整是一项复杂的系统工程,贯穿于系统的整个生存周期中。【关键词】性能调整与优化内存优化磁盘I/O应用程序一、数据库系统性能评价指标影响数据库性能的要素有很多,具体表现为应用程序、系统资源、并发数量等方面。一般情况下,主要通过以下性能指标来评价数据库系统的性能:系统响应时间、系统吞吐量、数据库的命中

2、率以及内存和I/O的使用情况。1.1 系统吞吐量系统吞吐量是指单位时间内系统能处理的事物数量,对于数据库系统,也就是单位时间内处理的SQL语句数量。因此,数据库系统的吞吐量(tps)=SQL语句执行的数量/时间。提高系统的吞吐量可以通过提高单个时间内系统执行事物的数量和提高单个事物的执行效率。1.2 响应时间响应时间是指用户在提交业务操作后到数据库反馈信息给用户所花费的总体时间。提高响应时间的途径有减少系统的服务时间和用户等待时间,两种途径是矛盾的统一体,减少系统的响应时间也就是提高系统的吞吐量,减少用户等待时间就是要提高系统的并发量,在实际应用中,要依据具体的应用情况来确定优化响应时间的主要

3、方面。1.3 数据库命中率数据库命中率是数据库性能的重要评价指标,主要包括数据库缓冲区命中率和共享池命中率。缓冲区命中率决定了用户需求的数据是否能在内存中得到满足,该比率等于高速缓存命中总数除以对高速缓存的查找总数;共享池命中率决定了用户提交的SQL语句是否需要进行重新解析,该比率等于SQL语句的解析次数除以SQL语句总的执行次数。通常情况,数据库的命中率应该在90%左右,低于这个值的系统均需要做出优化和调整。1.4 内存使用效率内存使用效率主要体现在可共享内存、永久性内存和运行时内存这三者的分配使用上。内存使用调整目标主要有两种,其一是集中精力解决可能产生最大利益的问题,使利益最大化;其二是

4、尽可能的减少系统的延迟和等待事物。1.5 磁盘I/OI/O是数据库处理和产生数据必可少的步骤;I/O分为逻辑读、逻辑写、物理读和物理写,其中逻辑操作主要对象是内存,物理操作的主要对象是磁盘,通过减少系统不必要的I/O次数可以提高系统的吞吐量,缩短系统响应时间。其中磁盘I/O是影响数据库性能最重要的方面,尽可能的减少磁盘I/O的次数是提高数据库性能的主要手段。二、数据库性能优化技术2.1 内存优化Oracle的信息存储在内存和磁盘上,由于访问内存比访问磁盘快得多,因此若能把尽可能多的数据存放在内存中,就可以达到加快执行速度、缩短响应时间、减少磁盘I/O等目的。Oracle数据库内存优化主要通过调

5、整SGA内存结构的大小来提高系统性能,其中共享池和缓冲区高速缓存是SGA两个最重要的优化区域。(1)优化共享池共享池由库缓冲区和数据字典缓冲区组成,其库缓冲区存放已经解释并执行过的SQL语句和PL/SQL程序代码及其分析、执行计划等信息;数据字典缓冲区主要存放数据库对象信息以及用户权限等信息。通过合理设置共享池的大小来确保大多数语句能够在共享池中查找到它们自己的一个已分析版本,就可以提高语句分析和执行的效率,降低资源消耗。数据库管理员通过库缓存命中率以及数据字典缓存命中率来检查共享池设置是否合适。库缓存命中率检查方法为:Select(sum(pins-reloads)/sum(pins)“Li

6、b Cache”from v$1ibrarycache;数据字典缓存命中率检查方法为:Select sum (gets)”Gets”,sum (getmisses)“Misses”,sum(gets)/ (sum (gets)+sum (getmisses)“Hit Ratio”from v $rowcache;通常情况下,库缓存命中率应该高于99%,而数据字典缓存命中率应该高于90%,否者需要调整SHARED-POOL-SIZE增加共享池大小。(2)优化缓冲区高速缓存数据高速缓存(Data Buffer Cache)是用于缓存数据库数据的内存区域。从内存读数据和从磁盘读数据,在访问速度上是指

7、数级的差别,缓冲区高速缓存越大,Oracle从内存读的数据就越多,磁盘的I/O就越少,系统性能就越好。数据库管理员通过下述语句来查看数据库数据缓冲区的使用情况:P=1-(physical reads/(db block gets+consistent gets)。SELECT name,value FROM v$sysstatWHERE name IN (db block gets,consistent gets,physical reads):这个命中率应该在90%以上,否则需要通过调整DB CACHE SIZE来增加Data Buffer Cache大小。(3)调整重做日志缓冲区重做日志缓

8、冲区如果分配太小,会导致没有足够的空间来放重做日志而等待,LGWR进程会频繁将LOGBUFFER中的数据写入磁盘增加I/O的次数,影响系统性能。重做日志的任何瓶颈都可能导致系统中所有进程的性能问题,为了确保系统不会发生这类情况,应该随时监控重做日志的竞争情况。观察重做日志缓冲区的工作情况的方法:select name,Value from v$sysstat where name=redo bufier allocation retrids“redo buffer allocation retrids”表示进程申请写入重做日志缓冲区失败后的重试次数,正常情况下应该为0,否则应该调整LOG BU

9、FFER参数增加缓冲区的大小。2.2 磁盘I/O优化对于数据库系统来说,磁盘I/O操作是数据库性能最重要的方面,为了避免与I/O相关的性能瓶颈,监控磁盘I/O并保持其优化非常重要。影响磁盘I/O性能的主要原因有磁盘竞争、I/O次数过多和数据块空间的分配管理等。具体的优化I/O的方法包括以下几方面。(1)常使用的对象产生I/O争用的机会较多,应将访问量较大的数据文件放在独立磁盘上,同一个表空间的多个数据文件应尽可能地放在不同的磁盘上,为索引创建单独的表空间,并将表和索引分开在不同的表空间;(2)在内存中修改过的数据先写入重做日志文件中,重做日志文件要足够大,要与数据文件存放在不同的磁盘上,减少对

10、磁盘的竞争,重做日志文件分为几个组,按顺序循环写入;(3)Oracle的文件和操作系统文件应尽可能地放在不同的磁盘上,以减小I/O争用的概率;(4)最好使用目前较流行的廉价磁盘冗余阵列(raid),它能自动分离不同类型、访问频率的数据库文件,减小I/O进程之间的竞争,优化数据库性能;(5)创建回滚段及其专用的表空间,以从系统操作的失败中得到数据的恢复,从而减小I/O进程之间的竞争,防止空间竞争影响事务的完成;(6)单独创建用户数据表空间,且要与系统表空间(system)分开磁盘存放,创建临时表空间用于排序操作,尽可能防止数据库碎片存在于多个表空间中。2.3 应用程序优化系统中80%的性能问题实

11、际上与oracle数据库的配置无关,而是由于应用程序中SQL语句的拙劣设计和糟糕实现引起。本节从与SQL执行效率密切相关的几个方面来介绍应用程序优化技术,包括索引、SQL语句实现、使用存储过程等。1.创建适当的索引建立“适当”的索引是实现查询优化的首要前提。如果通过索引来访问数据库,可以大大减少对大型表的全表扫描,从而减少I/O的开销。当使用索引时,应该注意以下原则:不对小型表创建索引;为经常检索大表中少于15%的行创建索引;有很多空值并且查询会涉及到空值的列不太适合索引;不对大型字段创建索引;索引不是越多越好,特别是大量从来或者几乎不用的索引,对系统只有损害;单列索引不如复合索引有效率;为用

12、于多表连接的字段加上索引,为经常进行连接的表使用簇;将表和索引建立在不同的表空间内,不将应用数据的对象存放到system表空间里,并确保数据表空间和索引表空间置于不同的物理磁盘。实际应用中,索引的建立必须慎重,要注意索引导致的查询语句性能的提高与更新数据时性能的降低之间的平衡。2.SOL语句调优SQL语句优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充分利用索引来减少表扫描的I/O数,尽量避免表搜索的发生。优化的目的就是将性能低下的SQL语句转换成目的相同的、性能优异的SQL语句,使数据查找的路径最简化,并尽量保持处理器时间和I/O的平衡。SQL语句优化原则:采用绑定变量;选择联合

13、查询的连接次序;避免相关子查询;适当使用临时表来加速查询;消除对大数据表行数据的顺序存取;正确使用UNION和UNION ALL;使用表的别名;正确使用WHERE子句;建立“适当”的索引;正确使用NULL、IN、EXIST、OR。3.使用存储过程Oracle的存储过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储作为一个单元处理,能完成一定功能并且存储在Server端的PL/SQL的集合。相对于应用程序的过程、函数而言,把SQL命令存储在Server端。使用存储过程,应用程序不必再包含多个网络操作的SQL语句去执行数据库服务器操作,而是简单调用存储过程,在网络上传输的只是调用过程的名

14、字和输出结果,这样就可减少大量的网络I/O。三、小结Oracle 10g数据库系统性能优化与调整是一个复杂、繁琐的系统工程,贯穿于数据库系统开发的整个过程。数据库系统配置的调整,包括内存结构调整、磁盘I/O调整以及应用程序优化等,直接决定了整个数据库系统的性能,应该利用各种性能优化手段进行反复的调整、比较以消除瓶颈,获得系统最优性能。参考文献1罗瑞明. Oracle数据库的性能优化方法研究.信息安全与技术,2012(5).2孙风栋,闫海珍. Oracle 10g数据库系统性能优化与调整.计算机技术与发展,2009(2).3李振宇. Oracle数据库的优化及方案.科技信息. 2010(13).

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁