RE: all_synonyms: performance issues

  • From: "Powell, Mark D" <mark.powell@xxxxxxx>
  • To: "oracle-l" <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 23 Aug 2006 11:39:26 -0400

Perhaps it is the internal query where Oracle checks to see who the
table belongs to in order to parse the query and check security.  The
presence of :"SYS_B_1" type names leads me to believe you have
cursor_sharing set to similar.  We have not had good luck when we tried
to use that setting.
 
-- Mark D Powell --
 
 
________________________________

From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Charles Schultz
Sent: Wednesday, August 23, 2006 11:21 AM
To: oracle-l
Subject: all_synonyms: performance issues



        Good day, list,
        
        In light of Metalink note 377037.1 (Selects Against ALL_SYNONYMS
Perform Badly on 10g Release 10.2), we have been tracking down why we
have so many calls to all_synonyms in the first place. We see a lot of
these types of queries occuring: 
        SELECT table_name, table_owner FROM all_synonyms WHERE owner =
:"SYS_B_0" AND synonym_name = :"SYS_B_1"
        
        Where does this come from? When I queried v$sql, I could not
find any parent cursors ( where parent.child_address = child.address and
lower(child.sql_text) like '%all_synonyms%'). We are also unable to find
explicit calls from the application, so we are operating under the
assumption that Oracle does this as part of a recursive call. A 10046
trace will show this query and a preceding query (ie, select * from
some_table), but I do not quite understand how they are related.
        
        Any help much appreciated,
        
        -- 
        Charles Schultz 

Other related posts: