kingbase v8r6 SQL优化基础

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值