content
SQL调优工作概述
了解优化器
逻辑优化
物理优化
认识统计信息
COST估算
执行计划解读
执行计划分析
性能问题产生的原因:
缺少索引,无分区或分区不当,cost估算存在偏差,统计信息不及时,语句需要改写等
问题调优手段:
使用索引,使用hint,调整参数,使用jit,使用并行,改写SQL
优化技术:(RBO,CBO)
逻辑优化(RBO):基于规则的优化,
优化包括:视图重写,inline CTE, 表达式预处理,子查询优化,等价谓词重写,条件化简,外连接消除,谓词下推
分析执行计划:explain analyze select xxx
视图重写一般只能针对简单视图,对于含distinct,group by子句的SQL,无法进行重写
CTE查询与外部的查询合并,避免CTE临时表过大 (CTE Scan xxx)
谓词重写:
举例:
name in (8,12) 重写 name=8 or name=12
sno between 10 and 20 重写 sno>=10 and sno<=20
物理优化(CBO)
选择:seqscan,indexscan,index only scan
排序:sort, indexscan
连接:hashjoin, merge join, nestloopjoin
聚集: hashaggregate,groupaggregate
如何估算:基于统计信息和代价估算模型,在无统计信息时,根据物理文件大小进行估算。
常规统计信息
表级统计信息(sys_class)
select relname,reltuples,relpages from sys_class
行数 -reltuples
页面数 -relpages
列级统计信息(sys_statistic)
select starelid,staattnum,stainherit,stanullfrac,staw