欢迎来到天天文库
浏览记录
ID:27939774
大小:74.52 KB
页数:5页
时间:2018-12-07
《浅议oracle数据库sql性能优化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅议Oracle数据库SQL性能优化摘要:本文通过对SQL语句优化技术的介绍,对数据查询语句的优化方式进行分析,得出应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率的好坏直接影响系统资源的占用情况,所以为了提高ORACLE数据库的性能,必须多角度优化SQL语句。关键词:Oracle数据库SQL语句优化分类号:TP311.138文献标识码:A文章编号:1007-9416(2013)09—0194—021引百随着软件技术的不断发展,系统性能越来越重要。信息系统都离不开数据库应用,而Oracle数据库的应用系统一般规模比较大,如何优化ORACLE数据库的性能就显得尤
2、为重要。为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,本文就如何优化SQL语句的方法来实现对ORACLE数据库性能的优化。2数据库SQL查询优化的原则数据库SQL查询优化的一个基本原则就是:通过尽可能少的磁盘I/O访问获取所需要的数据。要评价查询优化性能,需要在数据库优化前后比较其评价指标:响应时间和吞吐量之间的权衡、数据库的命中率以及内存的使用效率,并以此来衡量优化的效果和指导优化的方向。优质的查询语句可以使应用系统的性能得到大
3、大提高。拙劣的应用SQL语句、大小不合适的SGA内存结构、效率差的SQL语句、执行计划过度的文件I/O及访问数据库资源的紊乱等都会影响数据库系统的性能和执行效率。对于影响ORACLE数据库系统性能的要素除了主机CPU,RAM,存储系统,OS参数配置,ORACLE参数配置之外,最关键的要素就是SQL的编程质量,因此SQL语句尤其是复杂SQL语句的性能优化对于数据库的性能是至yvXhjo优化器的优化基于用户对所查询表的内容和其他一些与服务器有关的因素,如Cache大小、Cache策略、I/O大小等。SQL查询语句都可以有很多种查询计划,优化器将估计出全部的执行方法中所需时间最少的也就是所谓成
4、本最低的一种方法。(1)索引优化要尽可能的使用索引,减少磁盘的I/O操作。(2)连接手段在进行查询连接时优化器将所有连接的方法全部列举出来,计算每一种连接的成本,选择成本最低的一种。如连接时用到的数据无法获得,一般系统会使用平均密度作为依据,估算可能的命中率。如,一个存储过程或触发器中,有表达式的值在编译时无法得到,优化器就只能使用它的平均密度来估计命中的记录数。例如:DECLARE@valuemoneySELECTnameFROMemployeeWHEREsalary=@value只是由于咖31此的值在执行前不知道,它只能使用其平均密度来估计这条命令将要命中的记录数。(2)其他手段如,
5、数据表空间和索引表空间的分离,关系密切的表之间的表空间的分离,表空间的物理分布,都可以提高应用的性能。遵守这些原则就可以优化排序操作,提高SQL查询性能。3Oracle数据库SQL查询优化的过程和方法3.1Oracle数据库SQL查询语句处理过程Oracle数据库应用系统通过SQL(structuredquerylanguage)语言与数据库进行通信,数据库管理系统通过执行用户提交SQL语句完成查询过程。具体的查询操作包括解析、执行和提取数据三个阶段。(1)解析是检查SQL语句的语法和语义,最终生成SQL语句的执行计划,并将SQL语句和执行计划存放到共享池中。在解析期间,搜索库高速缓存检
6、查是否存在相同的SQL语句,若存在则直接执行该SQL语句。否则检查SQL语句的语法、语义以及用户访问对象的权限,最后交给查询优化器,由查询优化器确定SQL语句的最佳执行计划。(1)执行(Execute)是指服务器进程按照SQL语句执行计划执行SQL语句。执行计划是指执行这个查询所需要的一系列步骤,主要包括访问数据表的方式,表的连接次序,表的连接方式,以及各个步骤执行的先后顺序等。(2)提取数据(fetch)是指将被选择行数据返回到客户端。3.2查询优化方法(1)SQL执行计划查看。使用PL/SQL可以看到SQL的执行计划,默认的是ALLROWS,如果对ALLROWS的执行计划不满意的话,
7、我们可以选择Rule规则查看。(2)如果表分析仍然无法凑效,则需要考虑使用hint的方式。就是在SQL的开始的中的select语句部分加上/*+rule*/,然后再进行测试。(3)执行计划分析。如果使用RULE仍然没有好的执行计划,那么就要对SQL语句进行分析。1)检查TableAccessFull全表扫描部分。(4)索引选用方法。1)对于单表查询的情况,如果没有选择最佳的索引,则可以考虑使用表分析方式看是否会改善ORACLE选择,
此文档下载收益归作者所有