【发布时间】:2016-09-29 00:30:54
【问题描述】:
我有一个将表连接到某些数据字典视图的查询。查询有时可以正常工作,但有时执行时间过长。当它这样做时,即使我取消并再次运行它 100 次它也不会响应。
查询是:
SELECT
/*+ PARALLEL(auto) */
t.id
FROM table1 t ,
(SELECT /*+ PARALLEL(auto) */ DISTINCT r.INDEX_VALUE AS id,
r.LOCAL_ROWID,
r.REMOTE_ROWID
FROM DBA_COMPARISON_COLUMNS c,
DBA_COMPARISON_ROW_DIF r,
DBA_COMPARISON_SCAN s
WHERE R.SCAN_ID = S.SCAN_ID
AND c.COMPARISON_NAME = 'CMP_name'
AND s.root_SCAN_ID = '{scan_id}'
AND r.STATUS = 'DIF'
) dif
WHERE t.id = dif.id;
谁能帮我解决这个问题?
【问题讨论】:
-
不可能回答这样的问题。请分享查询以及查询不起作用时遇到的错误。
-
为什么这个问题被投票两次?这个问题甚至没有代码可以看。
-
查询没有错误,运行时间太长所以取消了。
-
您能分享一下查询吗?
-
瞧!一旦你发布了查询,结果是“两个表之间的简单连接”实际上是一个表和一个连接三个数据字典视图的内联视图之间的连接。毕竟没那么简单。下次您提出问题时,请考虑在一开始就发布所有相关信息,而不是让人们将其拖出您的行列。帮助我们为您提供帮助。
标签: sql oracle performance oracle11g query-optimization