|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Oracle 10g procedures issues |
« View previous topic :: View next topic » |
Author |
Message
|
tsuru |
Posted: Wed Oct 07, 2009 1:05 pm Post subject: Oracle 10g procedures issues |
|
|
Novice
Joined: 25 Nov 2005 Posts: 24 Location: São Paulo
|
We have message flows calling Oracle 10g stored procedures, but we are getting performance issues. Looking at Oracle sessions, we realized that Broker´s ODBC connection are looking for stored procedures parameters generating some SQL:
(select /*+ RULE */ a.owner,decode (b.object_type,'PACKAGE',concat(concat(b.object_name, '.'),a.object_name),b.object_name),decode(a.position,0,'RETURN_VALUE',decode(a.argument_name,NULL,'UNKNOWN',a.argument_name)),decode(a.position,0,5,decode(a.in_out,'IN',1,'IN/OUT',2,'OUT',4)),decode(a.data_type,'UNDEFINED',a.type_name,a.data_type),a.data_precision,a.data_length,a.data_scale,a.radix,a.position FROM ALL_ARGUMENTS a,all_OBJECTS b WHERE (b.object_type IN ('PROCEDURE','FUNCTION','PACKAGE')) AND b.object_id=a.object_id AND a.data_level=0 AND a.owner like 'APPS'escape'\'AND b.OBJECT_NAME like 'TKT_EAI_IMPLANTACAO_PKG'escape'\' union all select /*+ RULE */ c.owner,decode(b.object_type,'PACKAGE',CONCAT(CONCAT(c.synonym_name,'.'),a.object_name),c.synonym_name),decode(a.position,0,'RETURN_VALUE',decode(a.argument_name,NULL,'UNKNOWN',a.argument_name)),decode(a.position,0,5,decode(a.in_out,'IN',1,'IN/OUT',2,'OUT',4)),decode(a.data_type,'UNDEFINED',a.type_name,a.data_type),a.data_precision,a.data_length,a.data_scale,a.radix,a.position FROM ALL_ARGUMENTS a,all_OBJECTS b, all_synonyms c WHERE (c.table_owner=b.owner AND c.table_name=b.object_name) AND b.object_type IN ('PROCEDURE','FUNCTION','PACKAGE') AND b.object_id=a.object_id AND a.data_level=0 AND c.owner like 'APPS'escape'\'AND c.synonym_NAME like 'TKT_EAI_IMPLANTACAO_PKG'escape'\' union all select /*+ RULE */ c.owner,c.synonym_name,decode(a.position,0,'RETURN_VALUE',decode(a.argument_name,NULL,'UNKNOWN',a.argument_name)),decode(a.position,0,5,decode(a.in_out,'IN',1,'IN/OUT',2,'OUT',4)),decode(a.data_type,'UNDEFINED',a.type_name,a.data_type),a.data_precision,a.data_length,a.data_scale,a.radix,a.position FROM ALL_ARGUMENTS a,all_synonyms c WHERE (c.table_owner=a.package_name AND c.table_name=a.object_name) AND a.data_level=0 AND c.owner like 'APPS'escape'\'AND c.synonym_NAME like 'TKT_EAI_IMPLANTACAO_PKG'escape'\') order by 1,2,10
This query runs in about 10 minutes!! Right after that the stored procedure is called by Broker.
The Oracle DBA says that Oracle 10g does not support "Rule Hints" (see bold text above) and so it is the cause for the performance degradation.
Does anyone had such problems with Oracle 10g stored procedures? |
|
Back to top |
|
 |
mgk |
Posted: Thu Oct 08, 2009 3:27 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
This query is issued by the driver manager on behalf of an execution group when a stored procedure is first called (via the ODBC SQLProcedures and SQLProcedureColumns API calls), to discover that the procedure exists and matches the ESQL signature. The results of the call are cached for the lifetime of the execution group for subsequent calls to that procedure. This call is an expensive call to make, but that said it seems excessively long in your case. Thefore, I suggest you raise a PMR to try and see why it is taking so long.
Kind Regards, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|