这是我第一次尝试在 oracle 中使用基于函数的索引。但我不知道如何实现它。我在网上搜索并找到了与此相关的简单示例,例如使用 UPPER 函数索引的 SQL 等。虽然,我发现很多可以解释什么是基于函数的索引,但没有任何内容可以解释它在复杂 SQL 的情况下是如何工作的。我使用子选择跟踪 SQL 并且确实存在性能问题,当我进行一些搜索以改进它时,我发现有一种叫做基于函数的索引的东西。但现在我不知道如何使用它以及它如何提高性能。这是SQL。你能帮我如何在这个 SQL 上实现基于函数的索引(如果有可能的话。)
INSERT INTO TABLE1( K_ID, KKID, K_SEGMENTS, COL1, COL2, COL3, COL4, COL5, COL6, COL7 , COL8,COL9, COL10)
SELECT DISTINCT K_ID , KKID , K_SEGMENTS , COL1 , COL2 , COL3 , COL4 , COL5 , COL6 , COL7
, COL8 , COL9 , COL10
FROM TABLE2 A
, TABLE3 P
WHERE P.KEY1 = A.KEY1
AND NOT EXISTS (
SELECT 1
FROM TABLE1 B
WHERE 1=1
AND A.K_ID = B.K_ID
AND A.K_SEGMENTS = B.K_SEGMENTS)