博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何让oracle的select强制走索引
阅读量:5946 次
发布时间:2019-06-19

本文共 1399 字,大约阅读时间需要 4 分钟。

大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有犯2的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引

1 CREATE OR REPLACE VIEW V_RES_CBA AS 2 SELECT /*+INDEX(SEG IDX_T_RES_ALLOSEG_ALLOID)*/ 3    ALLO.ALLOID AS RESID, 4    NULL AS AWB,  5    ALLO.ALLOTMENT AS ALLO_ID,  6    DAYS.FDATE + NVL(SEG.DAYSDISP, 0) AS FDATE,  7    ALLO.SPECULD AS SPECULD  8     FROM T_RES_ALLO ALLO, T_RES_ALLOSEG SEG, V_FDATE DAYS 9    WHERE ALLO.ALLOID = SEG.ALLOID10      AND ((ALLO.ALLOIND = 'A' AND ALLO.ALLO_DATE = DAYS.FDATE) OR11          (ALLO.ALLOIND = 'S' AND12          NVL(ALLO.SDATE, ALLO.ALLO_DATE) = DAYS.FDATE)) 13   UNION14   SELECT /*+INDEX(SEG IDX_T_RES_ALLOSEG_ALLOID)*/15    ALLO.ALLOID AS RESID,16    NULL AS AWB, 17    ALLO.ALLOTMENT AS ALLO_ID, 18    DAYS.FDATE + NVL(SEG.DAYSDISP, 0) AS FDATE, 19    ALLO.SPECULD AS SPECULD 20     FROM T_RES_ALLO ALLO, T_RES_ALLOSEG SEG, V_FDATE DAYS21    WHERE ALLO.ALLOID = SEG.ALLOID22      AND ALLO.ALLO_DATE IS NULL23      AND ALLO.ALLOIND = 'A'24      AND (DAYS.FDATE >= ALLO.SDATE AND DAYS.FDATE <= ALLO.EDATE AND25          INSTR(ALLO.WEEKDAY, DAYS.WEEKDAY) > 0) 26      AND NOT EXISTS (SELECT subQuery.ALLOID27             from T_RES_ALLO subQuery28            where subQuery.ALLO_DATE = DAYS.FDATE29              and subQuery.ALLOTMENT = ALLO.ALLOTMENT)30 ;

要点:

1、/*+INDEX(SEG IDX_T_RES_ALLOSEG_ALLOID)*/ 这里的/*...*/中间不要有空格

2、表名要用别名,即:以上面的sql语句为例,要使用SEG,而不是T_RES_ALLOSEG

 

转载地址:http://tjbxx.baihongyu.com/

你可能感兴趣的文章
oracle进行字符串拆分并组成数组
查看>>
100多个基础常用JS函数和语法集合大全
查看>>
Java8 lambda表达式10个示例
查看>>
innerHTML outerHTML innerText
查看>>
kafka安装教程
查看>>
go语言基础
查看>>
【Windows】字符串处理
查看>>
Spring(十八):Spring AOP(二):通知(前置、后置、返回、异常、环绕)
查看>>
CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
查看>>
微服务+:服务契约治理
查看>>
save
查看>>
Android DrawLayout + ListView 的使用(一)
查看>>
clear session on close of browser jsp
查看>>
关于吃掉物理的二次聚合无法实现的需要之旁门左道实现法
查看>>
mysql出现unblock with 'mysqladmin flush-hosts'
查看>>
oracle exp/imp命令详解
查看>>
开发安全的 API 所需要核对的清单
查看>>
Mycat源码中的单例模式
查看>>
WPF Dispatcher介绍
查看>>
fiddler展示serverIP方法
查看>>