欢迎来到天天文库
浏览记录
ID:36784992
大小:339.10 KB
页数:44页
时间:2019-05-10
《《sql优化经验总结》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ORACLESQL优化经验交流系统支撑部董建忠1www.si-tech.com.cnwww.emobile.com.cn第一章:概述什么样的SQL需要优化常见的问题发现问题的方法2www.si-tech.com.cnwww.emobile.com.cn什么样的SQL需要优化引发严重的等待事件消耗大量的系统资源(CPU/IO/MEM)运行时间超长不能满足压力测试指标3www.si-tech.com.cnwww.emobile.com.cn常见的问题没有恰当的索引(全表扫描)没有使用到恰当的索引重编译问题多表关联条件不当或关联太多分区表没有分析,未能使用索引死锁4www.si-tech.co
2、m.cnwww.emobile.com.cn发现问题的方法从v$session_wait查看等待事件SQLPLUS使用AUTOTRACE查看执行计划在TOAD中直接查看执行计划从STATSPACK查看资源(CPU、I/O)消耗状况生成SESSIONTRACE文件(一般为DBA使用)用命令tkprof对TRACE文件进行分析5www.si-tech.com.cnwww.emobile.com.cn第二章:从等待事件中发现问题查看SESSIONWAIT的语句典型事件:DbFileSequentialRead典型事件:DbFileSequentialRead典型事件:LatchFree(lat
3、ch释放)6www.si-tech.com.cnwww.emobile.com.cn查看SESSIONWAIT的语句setpagesize2000setlinesize110coleventformata25colprogramformata20selecta.event,substr(b.program,1,20)program,b.sid,a.p1,a.p2,a.p3fromgv$session_waita,v$sessionbwherea.sid=b.sidanda.eventnotlike'%SQL%'anda.eventnotlike'%message%'anda.eventn
4、otlike'%time%'7www.si-tech.com.cnwww.emobile.com.cn典型事件:DbFileScatteredRead数据文件分散读取这种情况通常显示与全表扫描相关的等待。一般表明该表找不到索引,或者只能找到有限的索引。特定条件下执行全表扫描可能比索引扫描更有效,但如果出现这种等待时,最好检查一下这些全表扫描是否必要。建议将小而常用的表CACHE到内存中,以避免一次又一次地重复读取它们8www.si-tech.com.cnwww.emobile.com.cn典型事件:DbFileSequentialRead数据文件顺序读取这一事件通常显示单个块的读取(如索
5、引读取)表示表的连接顺序不佳,或者使用了不恰当的索引检查每个扫描是否必要的,并检查多表连接的连接顺序一般会消耗大量PGA内存,从而在顺序读取时导致大量等待。9www.si-tech.com.cnwww.emobile.com.cn典型事件:LatchFree(latch释放)latch是一种低级排队机制,用于保护系统全局区域(SGA)中共享内存结构。latch就像是一种快速地被获取和释放的内存锁。latch用于防止共享内存结构被多个用户同时访问。如果latch不可用,就会记录latch释放失败。大多数latch问题都与以下操作相关:不能使用绑定变量(库缓存latch)、重复生成问题(重复
6、分配latch)、缓冲存储器竞争问题(缓冲器存储LRU链),以及缓冲存储器中的“热”块(缓冲存储器链)。也有一些latch等待与bug(程序错误)有关当latch不命中率大于0.5%时,就应当研究这一问题10www.si-tech.com.cnwww.emobile.com.cn第三章:SQL语句的执行计划SQL语句的执行步骤ORACLE的优化器在SQLPLUS配置AUTOTRACE使用QUESTTOAD查看执行计划安装AUTOTRACE环境使用QUESTTOAD查看执行计划查看执行计划11www.si-tech.com.cnwww.emobile.com.cnSQL语句的执行步骤语法分
7、析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。表达式转换,将复杂的SQL表达式转换为较简单的等效连接表达式。选择优化器,不同的优化器一般产生不同的“执行计划”选择连接方式,ORACLE有三种连接方式,对多表连接ORACLE可选择适当的连接方式。选择连接顺序,对多表连接ORACLE选择哪一对表先连
此文档下载收益归作者所有