【发布时间】:2014-08-15 18:15:22
【问题描述】:
我需要帮助调整以下涉及从 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'));
任何帮助将不胜感激。非常感谢。
【问题讨论】:
-
为什么你认为这个提示会在这里有所作为?您是否以 HR 用户的身份运行它 - 如果是这样,您可以使用
user_objects,甚至是_tables和_views? -
除了@AlexPoole 的建议之外,您使用的是什么版本的Oracle 以及您如何(如果有的话)收集数据字典对象的统计信息?有很多特定于版本的注意事项,但如果您对单个数据字典表的查询具有不太理想的计划,那么问题通常是统计问题。
-
这周我的心灵感应很糟糕。您能否描述一下您遇到的性能问题?我定期运行与此类似的查询并获得亚秒级响应时间(Oracle 11.1)。您是否收集了
ALL_OBJECTS视图查询的表的完整统计信息? -
@BobJarvis - 不知道为什么您认为在非数据字典表上收集统计信息会有所帮助。
标签: performance oracle query-optimization data-dictionary