请问有关如何使此查询执行速度比目前更快的建议吗?
T2.ADI is indexed on TABLE2
T1.ADI is indexed on TABLE1
T1.RC AND T1.BEG_DT_TM is composite indexed on TABLE1
我还能做些什么来加快速度吗?
SELECT T1.ASI, T1.RC, T1.BEG_DT_TM
FROM TABLE1 T1
INNER JOIN TABLE2 T2
ON T2.ADI = T1.ADI
AND T2.END_DT_TM > T1.BEG_DT_TM
AND T2.BEG_DT_TM <= T1.END_DT_TM
WHERE T1.RC IN (12345, 56764460, 49862, 375723)
AND T1.BEG_DT_TM >=
AND T1.BEG_DT_TM <=
AND T1.END_DT_TM >=
AND T1.END_DT_TM <=
答案 0 :(得分:0)
在两个表上放置covering索引:
create index t1_c_1 on TABLE1(RC, BEG_DT_TM, END_DT_TM, ADI, ASI);
create index t2_c_1 on TABLE2(ADI, BEG_DT_TM, END_DT_TM);
这些索引是使用查询的最佳顺序列创建的,并且它们包括在选择列表中找到的其他非连接列,因此可以使用仅索引访问(避免任何访问实际表的需要) )。