2017-05-22 dba日记,使用add_months函数解决现实SQL性能问题
来源:互联网 发布:网络谣言的危害 案例 编辑:程序博客网 时间:2024/05/21 14:02
背景:
在数据库DB1上发现有一sql语句没有正确使用索引(没有使用到期望的索引)。
分析:
1.索引结构: create index idx_t1_01 on t1(period);
2.sql语句关键写法:WHERE TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE(period,'YYYYMM'))) = 4; <<<取出period是当前日期4个月前的数据
3. 症状所在,在索引关键字上使用函数,导致无法使用索引。
优化:
这个业务逻辑很简单,“取出period是当前日期4个月前的数据”
使用add_months改写
period=to_char(add_months(sysdate,-4),'yyyymm');
效果:改写后,一致读从55116下降至12
关键点:
1.读懂SQL逻辑,检查SQL的编写是否高效SQL的规范。(来源于sql诊断思维图)
2. add_months函数的第二个参数,不单可以接受正数,还可以接受负数。
阅读全文
0 0
- 2017-05-22 dba日记,使用add_months函数解决现实SQL性能问题
- ADD_MONTHS函数 的使用
- 2017-05-21 DBA日记,SQL语句诊断思维图
- 2017-04-27 DBA日记,关于存储光纤交换机故障引发的数据库性能问题
- 2017-08-22 DBA日记,段收缩
- ORACLE 日期函数 ADD_MONTHS
- oracel 日期函数 ADD_MONTHS
- ORACLE日期函数ADD_MONTHS
- ORACLE 日期函数 ADD_MONTHS
- ORACLE 日期函数 ADD_MONTHS
- oracle中的add_months()函数
- 2017-05-19 DBA日记,记一次SQL语句诊断的过程[之前的标题有误,现修改]
- Oracle ADD_MONTHS 使用
- 2017-04-05 DBA日记,oracle增量备份实施
- 2017-05-11 DBA日记,DTCC DAY-1的收获
- 2017-05-24 DBA日记,删除asm diskgroup过程
- 2017-05-28 DBA日记,oracle生僻字处理
- 2017-08-05 DBA日记,mysql读书笔记第四天
- Spring MVC之@RequestMapping 详解
- Spring_使用XML配置文件实现依赖注入
- Android性能优化-SQLite数据库
- 关于类继承的面试题
- Gulp简介及一些常用插件介绍
- 2017-05-22 dba日记,使用add_months函数解决现实SQL性能问题
- Android Studio获取app的versionName和versionCode
- ubuntu下深度学习框架caffe的安装(cpu模式下)
- Android 8.0(O版本)
- centos 系统 安装 drm:radeon_acpi_init Cannot find a backlight controller 错误解决方法
- Oracle创建student表
- 工厂模式
- PL sql概述+代码编写规则+标识符命名规则+大小写规则
- h5+plus照片拍摄及相册选择