Oracle版本:12.2
操作系统:Oracle Linux 7.4
SQL语句如下:因为应用系统是很多年的系统,开发反馈基本不让动代码的,
zb_1ddb, xb_2ddb 都是单表的视图;select zb_1ddb.jm, sum(zb_1ddb.zb_1005) + sum(zb_1ddb.zb_1009) as GTYS1001, sum(zb_1ddb.zb_1006) as GTYS1002, sum(zb_1ddb.zb_1007) as GTYS1003, sum(XB_2DDB.XB_2003) as GTYS1005, sum(zb_1ddb.zb_1002) as GTYS1006 from zb_1ddb, xb_2ddb where 1 = 1 and zb_1ddb.ymd >= to_date('2020-04-01', 'yyyy-mm-dd') and zb_1ddb.ymd < to_date('2020-05-01', 'yyyy-mm-dd') and xb_2ddb.ymd >= to_date('2020-04-01', 'yyyy-mm-dd') and xb_2ddb.ymd < to_date('2020-05-01', 'yyyy-mm-dd') and zb_1ddb.jm = xb_2ddb.jm and zb_1ddb.ymd = xb_2ddb.ymd and zb_1ddb.jm <> '+ ' group by zb_1ddb.jm;
拿到语句后,看了看语句没有什么特别之处,无非就是两个结果集关联过滤,但结果只返回16行数据,但消耗38秒,看如下执行计划:
看到执行计划发现,被驱动表关联列也是走的索引 INDEX_XB2_003 但扫描了570次,很明显执行计划有问题,这两个视图对应的基表都30M左右。
最简单的最粗暴的方式改变它的执行计划:select /*+ use_hash(zb_1ddb,xb_2ddb) */ zb_1ddb.jm, sum(zb_1ddb.zb_1005) + sum(zb_1ddb.zb_1009) as GTYS1001, sum(zb_1ddb.zb_1006) as GTYS1002, sum(zb_1ddb.zb_1007) as GTYS1003, sum(XB_2DDB.XB_2003) as GTYS1005, sum(zb_1ddb.zb_1002) as GTYS1006 from zb_1ddb, xb_2ddb where 1 = 1 and zb_1ddb.ymd >= to_date('2020-04-01', 'yyyy-mm-dd') and zb_1ddb.ymd < to_date('2020-05-01', 'yyyy-mm-dd') and xb_2ddb.ymd >= to_date('2020-04-01', 'yyyy-mm-dd') and xb_2ddb.ymd < to_date('2020-05-01', 'yyyy-mm-dd') and zb_1ddb.jm = xb_2ddb.jm and zb_1ddb.ymd = xb_2ddb.ymd and zb_1ddb.jm <> '+ ' group by zb_1ddb.jm;
居然秒出了。。再次查看执行计划
建议:如果能在修改视图重构的情况下尽量修改,少用HINT,尽量让Oracle 自己判断,我这也是没办法的办法了。。
SQL优化1
来源:这里教程网
时间:2026-03-03 15:39:34
作者:
编辑推荐:
- SQL优化103-03
- aux_stats$ 基表(系统统计信息)03-03
- Oracle RAC实施方案详细说明-数据库安装0503-03
- Oracle中获取TABLE的DDL语句的方法03-03
- dba_tables视图学习03-03
- dba_objects视图03-03
- OGG19C学习1-配置Manager和网络通信03-03
- 记一次惨败的Oracle DBA面试经历03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- SQL优化1
SQL优化1
26-03-03 - Oracle RAC实施方案详细说明-数据库安装05
Oracle RAC实施方案详细说明-数据库安装05
26-03-03 - 记一次惨败的Oracle DBA面试经历
记一次惨败的Oracle DBA面试经历
26-03-03 - 不会用管理工具,怎么做项目经理?
不会用管理工具,怎么做项目经理?
26-03-03 - DB兄”医院”历险记
DB兄”医院”历险记
26-03-03 - Oracle 20c 新特性:XGBoost 机器学习算法和 AutoML 的支持
- Oracle direct path read相关隐含参数
Oracle direct path read相关隐含参数
26-03-03 - golden gate同步的表结构修改检查
golden gate同步的表结构修改检查
26-03-03 - Oracle 20c 新特性:Online SecureFiles Defragmentation 在线的 LOB 碎片整理
- 项目管理工具,选择本地部署还是上云?
项目管理工具,选择本地部署还是上云?
26-03-03
