欢迎来到天天文库
浏览记录
ID:9883847
大小:2.31 MB
页数:207页
时间:2018-05-12
《oracle sql性能优化(全)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ORACLE培训--SQL性能优化老方块内部培训班使用内容概述课程主要讨论:SQL语句执行的过程、ORACLE优化器,表之间的关联,如何得到SQL执行计划,如何分析执行计划等内容,从而由浅到深的方式了解SQL优化的过程,使大家逐步掌握SQL优化。目录优化基础知识性能调整综述有效的应用设计SQL语句的处理过程Oracle的优化器Oracle的执行计划注意事项一、优化基础知识概述性能管理性能问题调整的方法SQL优化机制应用的调整SQL语句的处理过程共享SQL区域SQL语句处理的阶段共享游标SQL编码标准Oracle优化器介绍SQLTunningTips优化
2、Tools性能管理尽早开始设立合适目标边调整边监控相关人员进行合作及时处理过程中发生的意外和变化80/20定律SQL优化衡量指标随着软件技术的不断发展,系统性能越来越重要。系统性能主要用:系统响应时间和并发性来衡量。造成SQL语句性能不佳大致有两个原因:开发人员只关注查询结果的正确性,忽视查询语句的效率。开发人员只关注SQL语句本身的效率,对SQL语句执行原理、影响SQL执行效率的主要因素不清楚。*前者可以通过深入学习SQL语法及各种SQL调优技巧进行解决。SQL调优是一个系统工程,熟悉SQL语法、掌握各种内嵌函数、分析函数的用法只是编写高效SQL的必
3、要条件。*后者从分析SQL语句执行原理入手,指出SQL调优应在优化SQL解析和优化CBO上。调优领域调优领域:应用程序级调优:*SQL语句调优*管理变化调优2.实例级调优*内存*数据结构*实例配置3.操作系统交互*I/O*SWAP*Parameters本课程内容只讲解讨论应用程序级:OracleSQL语句调优及管理变化调优调整的方法调整业务功能调整数据设计调整流程设计调整SQL语句调整物理结构调整内存分配调整I/O调整内存竞争调整操作系统不同调整产生相应性能收益调整的角色SQL语句优化是提高性能的重要环节开发人员不能只注重功能的实现,不管性能如何开发人
4、员不能把Oracle当成一个黑盒子,必须了解其结构、处理SQL和数据的方法必需遵守既定的开发规范未经过SQL语句优化的模块不要上线SQL语句优化的过程定位有问题的语句检查执行计划检查执行过程中优化器的统计信息分析相关表的记录数、索引情况改写SQL语句、使用HINT、调整索引、表分析有些SQL语句不具备优化的可能,需要优化处理方式达到最佳执行计划什么是好的SQL语句?尽量简单,模块化易读、易维护节省资源内存CPU扫描的数据块要少少排序不造成死锁SQL共享原理ORACLE将执行过的SQL语句存放在内存的共享池(sharedbufferpool)中,可以被所
5、有的数据库用户共享。当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路径.这个功能大大地提高了SQL的执行性能并节省了内存的使用。SQL共享原理为了不重复解析相同的SQL语句,在第一次解析之后,Oracle将SQL语句存放在内存中。这块位于系统全局区域SGA(systemglobalarea)的共享池(sharedbufferpoo1)中的内存可以被所有的数据库用户共享。因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前执行过的语句完全相同,Ora
6、cle就能很快获得已经被解析的语句以及最好的执行方案。Oracle的这个功能大大地提高了SQL的执行性能并节省了内存的使用。可惜的是,Oracle只对简单的表提供高速缓冲(cachebufferiIlg),这个功能并不适用于多表连接查询。数据库管理员必须在启动参数文件中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了。当向Oracle提交一个SQL语句时,Oracle会首先在这块内存中查找相同的语句。SQL共享的三个条件当前被执行的语句和共享池中的语句必须完全相同(包括大小写、空格、换行等)两个语句所指的
7、对象必须完全相同(同义词与表是不同的对象)两个SQL语句中必须使用相同的名字的绑定变量(bindvariables)共享SQL语句注意:Oracle对两者采取的是一种严格匹配策略,要达成共享。SQL语句必须完全相同(包括空格、换行等)。能够使用共享的语句必须满足三个条件:①字符级的比较。当前被执行的语句和共享池中的语句必须完全相同。例如:SELECT*FROMATABLE;和下面每一个SQL语句都不同:SELECT*fromATABLESelect*FromAtable;②语句所指对象必须完全相同即两条SQL语句操作的数据库对象必须同一。③语句中必须使
8、用相同命名的绑定变量。如:第一组的两个SQL语句是相同的,可以共享;而第二组中两个语句不同,即
此文档下载收益归作者所有