【发布时间】:2010-05-06 10:36:34
【问题描述】:
我正在运行以下查询:
SELECT * FROM all_tab_cols c
LEFT JOIN all_varrays v ON c.owner = v.owner
AND c.table_name = v.parent_table_name
AND c.column_name = v.parent_table_column
在 10g 服务器上这需要大约 2 秒,在 9i 上这需要 819 秒(13 分钟)!究竟是什么导致了这种巨大的性能差异,我该如何解决?
【问题讨论】:
-
为什么重要?为什么不直接使用 Oracle 10/11g?
-
因为我正在开发的应用需要连接11g、10g和9i。
-
第一个问题:你比较的两个数据库中 all_tab_cols 和 all_varrays 的行数是否相同?
-
同一个数量级。 9i: 35046, 301. 10g: 50317, 383. 所以 9i 服务器应该做的工作少得多。
-
能看一下查询计划吗?
标签: oracle query-optimization data-dictionary