ORACLE SQL 优化经验交流 系统支撑部 董建忠1www.si-第一章: 概述 数据库优化的几个环节 什么样的SQL 需要优化 常见的问题 发现问题的方法2www.si-数据库优化的几个环节 物理存储IO 均衡 数据库规划合理(参数、表空间分布) 数据表和索引的设计 SQL 语句的优化3www.si-什么样的SQL 需要优化 引发严重的等待事件(IO 、锁) 消耗大量的系统资源(CPU/IO/MEM ) 运行时间超长(排序段、回滚段占用太大) 不能满足压力测试指标4www.si-常见的问题 没有恰当的索引(全表扫描问题) 索引不适当(索引低效、无用) 重编译问题(程序开发问题) 多表关联条件不当或关联太多 分区表没有分析,未能使用索引(维护问题) 死锁(应用逻辑问题)5www.si-发现问题的方法 从v$session_wait 查看等待事件 SQLPLUS 使用AUTOTRACE 查看执行计划 在TOAD 中直接查看执行计划 从STATSPACK 查看资源(CPU 、I/O) 消耗状况 生成SESSION TRACE 文件(一般为DBA 使用) 用命令tkprof 对TRACE