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

本文详细介绍了SQL调优中的各种策略,包括逻辑优化(基于规则的RBO)和成本导向的CBO,涉及索引使用、统计信息更新、执行计划分析及性能瓶颈识别。作者还讲解了全表扫描、索引扫描等执行节点,以及如何通过explain分析执行计划以提升数据库性能。
最低0.47元/天 解锁文章
3142

被折叠的 条评论
为什么被折叠?



