Class StatementDuration

java.lang.Object
org.apache.derby.vti.VTITemplate
org.apache.derby.diag.StatementDuration
All Implemented Interfaces:
AutoCloseable, ResultSet, Wrapper, AwareVTI

public class StatementDuration extends VTITemplate
StatementDuration is a virtual table which can be used to analyze the execution duration of the statements of "interest" in db2j.log or a specified file when db2j.language.logStatementText=true.

A limitation is that, for each transaction ID, a row will not be returned for the last statement with that transaction id. (Transaction IDs change within a connection after a commit or rollback, if the transaction that just ended modified data.)

The execution duration is the time between the beginning of execution of two successive statements. There are a number of reasons why this time may not be accurate. The duration could include time spent in the application waiting for user input, doing other work, etc. It may also only include a portion of the actual execution time, if the application executes a new statement before draining the previous open ResultSet. StatementDuration can be used to get a rough sense of where the bottlenecks in an application's JDBC code are.

The StatementDuration virtual table has the following columns:

  • TS varchar(26) - not nullable. The timestamp of the statement.
  • THREADID varchar(80) - not nullable. The thread name.
  • XID varchar(15) - not nullable. The transaction ID.
  • LOGTEXT long varchar - nullable. Text of the statement or commit or rollback.
  • DURATION varchar(10) - not nullable. Duration, in milliseconds, of the statement.