在10g中,由于解决了9I ALL_SYNONYMS的bug,导致查询ALL_SYNONYMS性能下降。
上一篇介绍了9i中,如果创建一个指向同义词的同义词,则在ALL_SYNONYMS视图中可能看不到这个同义词。10g中则解决了这个问题。可以看到,9i和10g的ALL_SYNONYMS视图的定义发生了变化:
SQL> select
dbms_metadata.get_ddl('VIEW', 'ALL_SYNONYMS') from dual;
DBMS_METADATA.GET_DDL('VIEW','ALL_SYNONYMS')
--------------------------------------------------------------------------------
CREATE OR REPLACE FORCE VIEW
"SYS"."ALL_SYNONYMS" ("OWNER",
"SYNONYM_NAME", "TABLE_OWNER", "TABLE_NAME",
"DB_LINK") A
S
select u.name, o.name, s.owner, s.name, s.node
from sys.user$ u, sys.syn$ s, sys.obj$ o
where o.obj# = s.obj#
and o.type# = 5
and o.owner# = u.user#
and (
o.owner# in (USERENV('SCHEMAID'),