《DBA的思想天空:感悟Oracle数据库本质(白鳝)》第15.4章节学习笔记
.
SQL语句优化的工作
q 查找 TOP SQL;
q 分析 SQL对系统的影响;
q 分析 SQL的优化方法;
q 制订优化计划;
q 实施优化操作;
q 评估优化效果;
.
查找TOP SQL的方法
q AWR/STATSPACK/ADDM/ASH报告;
q EM ADDM分析;
q SQLA(来自Metalink的工具);
q V$SQL/V$SQLAREA;
q Oracle 9i SQLANALYZER;
q Oracle 9i EM TOP SQL;
.
常见的 SQL优化方法
q 调整索引;
q 调整执行计划;
q 优化相关表的存储结构; (改变表结构、减少表碎片)
q 数据归档;
q 表和索引分析策略调整;
q 调整 SQL执行时间窗口;
q 限制数据查询范围 ;
q 修改 SQL
.
SQL优化最为关键的因素
主要体现在三个方面:一是多表连接的顺序,二是两个表连接的方式,三是单表访问的路径
分析 SQL中每个表的过滤条件,确定每个单表的最佳访问路径:表的访问路径大体可分为全表扫描、索引唯一性扫描、索引范围扫描、快速全索引扫描、索引跳跃式扫描、分区扫描等
对于每张单表,首先要根据表上面的过滤条件确定每张表经过过滤条件后可能产生的结果集的大小。然后根据结果集和表的大小的比较,我们就可以选择出合适的单表访问路径
对于多表连接,确定表的连接顺序是最为关键的,表连接顺序的选择要素是尽可能多地过滤掉无效的记录。因此过滤条件较多的表,最终过滤效果最好的表会排在最前面
判断哪个条件更强。通过分析每张表上的所有过滤条件过滤后的结果集的大小,就可以找出最佳的那张表;
确定了驱动表后,就要考虑驱动表的访问路径了
选定了驱动表后,就需要分析驱动表先和哪张表连接比较好。选择的原则是,能够尽可能多地过滤掉数据,连接后返回结果集较小的优先考虑;
该贴被lei.wang编辑于2015-3-23 15:43:08