DBA vs ALL查看性能

时间:2015-12-18 08:50:34

标签: oracle

我想知道在ALL_视图上使用DBA_目录视图查询数据库元数据是否有一些性能优势,以及在哪种情况下(如果有的话)会显示这种优势。

1 个答案:

答案 0 :(得分:0)

Oracle字典很慢所以一般的经验法则是不要在性能关键代码中使用字典。如果您非常需要应用程序中的元数据,则可以基于字典表创建实体化视图,并在执行DDL后手动刷新它。当然,并非字典中的每个更改都是由用户DDL完成的,但我不知道您需要什么样的域名数据。

至于ALL_和DBA_视图的差异,我认为它是微不足道的。出于显而易见的原因,DBA_次观看的数据多于ALL_观看次数。在每种情况下,您都可以尝试使用DBMS_METADATA包为它们获取DDL。

select dbms_metadata.get_ddl('VIEW', 'ALL_TABLES', 'SYS')
from dual

我不会附加输出,因为它非常冗长和无用。如果ALL_TABLES FROM中使用的表列表相同,则表示AsyncTask。由于您访问了大量相同的数据,执行相同的连接并且只是略微过滤行,因此在性能方面,结果应该大致相同。