DB_ExecuteSQL Hangs
The appearance of hanging
can be related to SQL statements that have problems with joining multiple
tables. Unless there are column constraints, the result of a join operation
is a cross product of all rows in one table with all rows in the other.
Trying to select all of these rows may take minutes or even hours!
4Test Solution - Make sure that your SQL statements with join operations
specify column constraint relationships that connect all of the tables
together. Use EXISTS and not EXISTS sub-queries to reduce the number
of tables involved in the cross product.
TestMap Solution - If you are using the TestMap TmDb functions,
you can trace the SQL statements that are being sent to the ODBC interface.
This is done by turning on the Runtime option, Print Agent Calls. The
last line of output in the .jou file will have the SQL statement that
was being executed when you kill or cancel partner out of the hang condition.
Examine this SQL statement for any table joining problems. Another approach
you can use is to place an execution time limit on the TmDbLookUp function.
This will stop the data retrieval portion of the operation if that time
limit is reached. This is done by specifying a compiler constant
or global variable NUMBER called TmDbLookUpTimeOut that is set to the
number of seconds desired for the limit. If the limit is reached, the
test script will be stopped when data retrieval has begun.
|