# SYSXPLAIN_STATEMENT_TIMINGS system table

The SYSXPLAIN_STATEMENT_TIMINGS table captures information about statement timings which occurred during statements that were executed using RUNTIMESTATISTICS with XPLAIN style.

See "Working with RunTimeStatistics" in Tuning Derby for information on how to configure this. Note in particular that you must call SYSCS_UTIL.SYSCS_SET_STATISTICS_TIMING(1) to enable timing information to be captured. Rows in this table are typically joined with rows in SYSXPLAIN_STATEMENTS and SYSXPLAIN_RESULTSETS during analysis. For example:

    select s.stmt_text, st.execute_time
        from my_stats.sysxplain_statements s,
             my_stats.sysxplain_statement_timings st
        where s.timing_id = st.timing_id
        order by st.execute_time desc

Rows in this table are added automatically when Derby has been configured appropriately. The rows remain in the table until you delete them or drop the table.

The following table shows the contents of the SYSXPLAIN_STATEMENT_TIMINGS system table.

Table 1. SYSXPLAIN_STATEMENT_TIMINGS system table
Column Name | Type | Length | Nullable | Contents
--- | --- | --- | --- | ---
TIMING_ID | CHAR | 36 | false | A unique identifier for this particular row. This column can be used to join with the TIMING_ID column in SYSXPLAIN_STATEMENTS to match statement timings with their corresponding statements.
PARSE_TIME | BIGINT | 20 | false | The time in milliseconds that Derby took to parse this statement.
BIND_TIME | BIGINT | 20 | false | The time in milliseconds that Derby took to bind this statement. Binding a statement is the process of resolving table and column references in the statement against the table and column definitions in the system catalogs.
OPTIMIZE_TIME | BIGINT | 20 | false | The time in milliseconds that Derby took to optimize this statement. During optimization, Derby considers the various possible execution plans that could be used for the statement, and chooses the one it thinks will be best.
GENERATE_TIME | BIGINT | 20 | false | The time in milliseconds that Derby took to generate code for this statement.
COMPILE_TIME | BIGINT | 20 | false | The time in milliseconds that Derby took to compile this statement. Overall statement time is divided into compile time and execute time, and the compile time is further sub-divided into parse, bind, optimize, and generate time.
EXECUTE_TIME | BIGINT | 20 | false | The time in milliseconds that Derby took to execute this statement.
BEGIN_COMP_TIME | TIMESTAMP | 29 | false | The time at which Derby began to compile this statement.
END_COMP_TIME | TIMESTAMP | 29 | false | The time at which Derby finished compiling this statement.
BEGIN_EXE_TIME | TIMESTAMP | 29 | false | The time at which Derby began to execute this statement.
END_EXE_TIME | TIMESTAMP | 29 | false | The time at which Derby finished executing this statement.

Parent topic: XPLAIN style tables