VIEW1 IS:

SELECT A, B, C FROM view2
UNION ALL
SELECT A, B, C FROM view3
  INNER JOIN TBL5 ON view3.CODE = TBL5.CODE

C列索引在源表中,并且当我执行选择语句的单独它使用的索引和回来在闪蒸。当我使用视图超时。我的印象,甲骨文重写了查询针对视图和使用的索引,其中有用的,而不是进行SELECT * FROM VIEW1然后事实之后施加谓词。

我在做什么错?样品视图上述照射这个问题,但我的真实视图中的每个加入几十个表所以看法是确有必要。

有帮助吗?

解决方案

优化器不知道代码的值会是什么时间提前当它建立执行计划,因为你要反对的观点。如果你是在11g可以使用PUSH_PRED优化提示,使您预期的那样工作。

其他提示

您可以尝试的提示。 或确保表进行了分析。

另外一个想法 - 也许是为了Meterialized查看

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top