2

我需要帮助调整以下涉及从 Oracle 数据字典 ALL_OBJECTS 查询的查询。

SELECT OBJECT_NAME ,OBJECT_TYPE 
FROM ALL_OBJECTS OBJ 
WHERE (OBJ.OWNER ='HR') 
AND (OBJ.OBJECT_TYPE IN ('TABLE','VIEW'));

我尝试使用以下提示调整查询,但没有太大帮助。

SELECT /*+ STAR_TRANSFORMATION */ OBJECT_NAME
       ,OBJECT_TYPE 
FROM ALL_OBJECTS OBJ 
WHERE (OBJ.OWNER ='HR') 
AND (OBJ.OBJECT_TYPE IN ('TABLE','VIEW'));

任何帮助将不胜感激。非常感谢。

4

1 回答 1

4

查询数据字典时遇到问题是不寻常的,但并非未知。我发现它是一个问题的一种情况是数据库看到很多模式重建 - 例如共享开发或持续集成目标。在这种情况下,数据字典对象的统计数据可能非常不准确。如果这听起来适合您的情况,您可以请友好的 DBA(或任何其他具有必要特权的人)运行GATHER_DICTIONARY_STATS(). 了解更多


顺便说一句,我真的不确定您为什么认为STAR_TRANSFORMATION可能对您有所帮助:该提示旨在将连接转换为子查询以模仿数据仓库样式中的星型模式。你没有连接,所以这只是神奇的想法。

于 2014-08-16T08:44:33.420 回答