Oracle11g 分析函数情况下取消oracle测试的子查询
我有一个带有子查询的oracle查询。子查询使用分析函数。如果子查询更改为join,则执行时间会有显著的改进。但在相同的其他类似查询中,它保持不变。在查看explain计划时,我发现显示了显著改进的子查询已由Oracle optimizer自动连接 当我搜索取消子查询的概念时,它基本上意味着将子查询转换为联接,它提到在某些条件下,会发生这种情况 我不清楚的是解释计划,如何理解它多次执行Oracle11g 分析函数情况下取消oracle测试的子查询,oracle11g,Oracle11g,我有一个带有子查询的oracle查询。子查询使用分析函数。如果子查询更改为join,则执行时间会有显著的改进。但在相同的其他类似查询中,它保持不变。在查看explain计划时,我发现显示了显著改进的子查询已由Oracle optimizer自动连接 当我搜索取消子查询的概念时,它基本上意味着将子查询转换为联接,它提到在某些条件下,会发生这种情况 我不清楚的是解释计划,如何理解它多次执行 Query Synopsis: JOIN CONTRACT CONTRACT ON UWFILE.ID
Query Synopsis:
JOIN CONTRACT CONTRACT
ON UWFILE.ID =CONTRACT.UWFILE_ID
AND CONTRACT.YEAR = UWFILE.YEAR
AND UWFILE.ORDER_NUM = CONTRACT.ORDER_NUM
AND CONTRACT.ID IN
(SELECT ID
FROM
(SELECT ID,
DENSE_RANK()over(partition BY CONTRACT.FACUL_NUM, CONTRACT.YEAR order by (CONTRACT.ENDOR_NUM) DESC) AS endor_rank
FROM CONTRACT
)
WHERE endor_rank = 1
)
Explain plan Synopsis:
Filter Predicates
AND CONTRACT.LAST_IN_FORCE=1
EXISTS (SELECT 0 FROM (SELECT ID ID,DENSE_RANK() OVER ( PARTITION BY CONTRACT.FACUL_NUM,CONTRACT.YEAR ORDER BY INTERNAL_FUNCTION(CONTRACT.ENDOR_NUM) DESC
VIEW
Filter Predicates
AND
ID=:B1
ENDOR_RANK=1
WINDOW Filter Predicates DENSE_RANK() OVER ( PARTITION BY CONTRACT.FACUL_NUM,CONTRACT.YEAR ORDER BY INTERNAL_FUNCTION(CONTRACT.ENDOR_NUM) DESC )<=1
请显示查询和解释计划。添加了查询和解释计划的概要。此子查询似乎不存在,并且似乎在重复。我不清楚它何时取消子查询