我想知道在ALL_视图上使用DBA_目录视图查询数据库元数据是否有一些性能优势,以及在哪种情况下(如果有的话)会显示这种优势。
答案 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
。由于您访问了大量相同的数据,执行相同的连接并且只是略微过滤行,因此在性能方面,结果应该大致相同。