我有一些关于索引的问题。
首先,如果我在WITH子句中使用索引列,该列在主查询中仍然可以用作索引列吗?
例如,
WITH TEST AS (
SELECT EMP_ID
FROM EMP_MASTER
)
SELECT *
FROM TEST
WHERE EMP_ID >= '2000'
' EMP_MASTER‘表中的' EMP_ID’是PK,EMP_MASTER的索引由EMP_ID组成。
在这种情况下,“索引扫描”是否发生在主查询中?
其次,如果我连接两个表,然后在哪里使用每个表中的两个索引列,是否会发生“索引扫描”?
例如,
SELECT *
FR
我正在使用一个包含大约30列和15亿行的遗留Oracle表。它包含过去两年的销售数据。这个表有关于SALES_DATE、CLIENT_ID和PRODUCT_ID的索引,我经常需要找出特定客户的特定产品在两个日期之间的销售额。我通常运行的查询是这样的:
select sum(SALES_VALUE)
from SALES
where CLIENT_ID = 9999
and PRODUCT_ID IN (1, 2, 15, 16)
and SALES_DATE between to_date('2015-01-01', 'yyyy-mm-dd')