Performance Oracle-连接两个复杂视图-优化器故障

Performance Oracle-连接两个复杂视图-优化器故障,performance,oracle,join,views,Performance,Oracle,Join,Views,我有两个相当复杂的观点。我需要生成一个报告,该报告将通过某个列将两者连接起来。 每个视图在不到一分钟的时间内分别返回完整的结果集。 当我加入他们时,优化器会重建查询并做出奇怪的事情,所以结果根本不会返回。 问题是是否有办法告诉优化器先检索两个集合,然后再加入它们(每个集合只有数千条记录) 目前的解决方案是基于创建中间表(物化视图也起作用),但我想在单个查询中实现这一点 谢谢如果看不到解释计划、查询、视图和表结构,很难说清楚。我要说的是,通常在这些情况下,最好的答案是重写查询,不使用视图,直接执行

我有两个相当复杂的观点。我需要生成一个报告,该报告将通过某个列将两者连接起来。 每个视图在不到一分钟的时间内分别返回完整的结果集。 当我加入他们时,优化器会重建查询并做出奇怪的事情,所以结果根本不会返回。 问题是是否有办法告诉优化器先检索两个集合,然后再加入它们(每个集合只有数千条记录)

目前的解决方案是基于创建中间表(物化视图也起作用),但我想在单个查询中实现这一点


谢谢

如果看不到解释计划、查询、视图和表结构,很难说清楚。我要说的是,通常在这些情况下,最好的答案是重写查询,不使用视图,直接执行您想要的操作。这可能会解决问题

如果你做不到这一点,试试这个。像这样:

SELECT /*+ NO_REWRITE */ rest_of_your_query_goes_here

这将告诉Oracle尝试直接解释您的查询,而不是尝试重写它。

如果看不到解释计划、查询、视图和表结构,很难说清楚。我要说的是,通常在这些情况下,最好的答案是重写查询,不使用视图,直接执行您想要的操作。这可能会解决问题

如果你做不到这一点,试试这个。像这样:

SELECT /*+ NO_REWRITE */ rest_of_your_query_goes_here

这将告诉Oracle尝试直接解释您的查询,而不是尝试重写它。

可能有一种方法可以告诉优化器先检索两个集合,然后再加入它们。您必须检查/发布视图的sql和计划,以及连接两个视图的查询的sql和计划。同时阅读提示可能有一种方法告诉优化器先检索两个集合,然后再加入它们。您必须检查/发布视图的sql和计划,以及连接两个视图的查询的sql和计划。同时阅读提示