I've inherited some code that calls SYSIBM.SQLPROCEDURES to validate user
provided parameters and text prior to executing a stored procedure.
This code was written on an early UDB release (V6?) and presumably ran fine.
On some UDB v8.1 systems, calls to SYSIBM.SQLPROCEDURES take in excess of 58
seconds. My actual application sproc takes < 1 second to execute. Needless
to say, this is not quite acceptable performance.
On other UDB 8.1 systems, the same SYSIBM.SQLPROCEDURES calls run
sub-second. My 'slow' system is a 4cpu Sun 3800 (with 1.2Ghz chips). Same
calls ran fast on a two CPU Sun Ultra2 (with 300 mhz chips and very little
memory).
Anyone experience problems with SYSIBM.SQLPROCEDURES? Any suggestions on how
to fix this?
SQLProcedures( hStmt=2:1, pszCatalogName=Null Pointer,
sCatalogNameByteCount=0, pszSchemaName=Null Pointer, sSchemaNameByteCount=0,
pszProcName="CONTACT_PHONE_ADD", sProcNameByteCount=-3 )
---> Time elapsed - +3.320000E-004 seconds
( StmtOut="CALL SYSIBM.SQLPROCEDURES(?,?,?,?)" )
( Package="SYSSH200 ", Section=4 )
( pInputDD=" SQLDD Information
~~~~~~~~~~~~~~~~~
numAllocVals = 4
numVals = 4
numLobVals = 0
numNonNullLobVals = 0
Default Data Type Definition = 3
Max Row Size = 0
flags = 0
codepage = 819
singleByteCP = 819
doubleByteCP = 1200
DDvalue[0] DDtype = 87, DDlen = 128,
DDcodepage = 819, DDLobLenSize = 8224
DDvalue[1] DDtype = 87, DDlen = 128,
DDcodepage = 819, DDLobLenSize = 8224
DDvalue[2] DDtype = 87, DDlen = 128,
DDcodepage = 819, DDLobLenSize = 0
DDvalue[3] DDtype = 87, DDlen = 4000,
DDcodepage = 819, DDLobLenSize = 0
There is no extension for this dataDescriptor
" )
( Row=1, iPar=1, fCType=SQL_C_CHAR, rgbValue=Null data, pcbValue=-1,
piIndicatorPtr=-1 )
( Row=1, iPar=2, fCType=SQL_C_CHAR, rgbValue=Null data, pcbValue=-1,
piIndicatorPtr=-1 )
( Row=1, iPar=3, fCType=SQL_C_CHAR, rgbValue="CONTACT_PHONE_ADD",
x'434F4E544143545F50484F4E455F414444', pcbValue=17, piIndicatorPtr=17 )
( Row=1, iPar=4, fCType=SQL_C_CHAR, rgbValue="DATATYPE='ODBC';",
x'44415441545950453D274F444243273B', pcbValue=16, piIndicatorPtr=16 )
sqlccsend( ulBytes - 466 )
sqlccsend( Handle - 00638000 )
sqlccsend( ) - rc - 0, time elapsed - +1.790000E-004
sqlccrecv( )
sqlccrecv( ulBytes - 910 ) - rc - 0, time elapsed - +5.803996E+001
( return=0 )
SQLProcedures( )
<--- SQL_SUCCESS Time elapsed - +5.804572E+001 seconds