SNAP_GET_DYN_SQL_V95 table function - Retrieve dynsql logical group snapshot information
The SNAP_GET_DYN_SQL_V95 table function returns snapshot information from the dynsql logical data group.
Note: This
table function has been deprecated and replaced by the SNAP_GET_DYN_SQL table function.
Refer to Table 1 for a complete list of information
that can be returned.
Syntax
The schema is SYSPROC.
Table function parameters
-
dbname
- An input argument of type VARCHAR(128) that specifies a valid database name in the same instance as the currently connected database. Specify a database name that has a directory entry type of either "Indirect" or "Home", as returned by the LIST DATABASE DIRECTORY command. Specify NULL or empty string to take the snapshot from the currently connected database. member
- An optional input argument of type INTEGER that specifies a valid database member number. Specify -1 for the current database member, or -2 for an aggregate of all active database members. If dbname is not set to NULL and member is set to NULL, -1 is set implicitly for member. If this input option is not used, that is, only dbname is provided, data is returned from all active database members. An active database member is a member where the database is available for connection and use by applications.
If both dbname and member are set to NULL, an attempt is made to read data from the file created by SNAP_WRITE_FILE procedure. Note that this file could have been created at any time, which means that the data might not be current. If a file with the corresponding snapshot API request type does not exist, then the SNAP_GET_DYN_SQL_V95 table function takes a snapshot for the currently connected database and database member number.
Authorization
One of the
following authorizations is required:
- EXECUTE privilege on the SNAP_GET_DYN_SQL_V95 table function
- DATAACCESS authority
In addition, to access snapshot monitor data, one of
the following authorities is also required:
- SYSMON
- SYSCTRL
- SYSMAINT
- SYSADM
Default PUBLIC privilege
In a non-restrictive database, EXECUTE privilege is granted to PUBLIC when the function is automatically created.
Example
Retrieve a list of dynamic SQL run
on the currently connected database member of the currently connected
database, ordered by the number of rows read.
SELECT PREP_TIME_WORST, NUM_COMPILATIONS, SUBSTR(STMT_TEXT, 1, 60)
AS STMT_TEXT FROM TABLE(SNAP_GET_DYN_SQL_V95('',-1)) as T
ORDER BY ROWS_READ
The following is an example of output from this
query.
PREP_TIME_WORST ...
-------------------- ...
0 ...
3 ...
...
4 ...
...
4 ...
...
4 ...
...
3 ...
...
4 ...
...
Output from this query (continued).
... NUM_COMPILATIONS STMT_TEXT
... -------------------- ---------------------------------------...-
... 0 SET CURRENT LOCALE LC_CTYPE = 'en_US'
... 1 select rows_read, rows_written,
... substr(stmt_text, 1, 40) as
... 1 select * from table
... (snap_get_dyn_sqlv9('',-1)) as t
... 1 select * from table
... (snap_getdetaillog9('',-1)) as t
... 1 select * from table
... (snap_get_hadr('',-1)) as t
... 1 select prep_time_worst, num_compilations,
... substr(stmt_text,
... 1 select prep_time_worst, num_compilations,
... substr(stmt_text,
After running a workload, user can use the following
query with the table function.
SELECT STATS_FABRICATE_TIME,SYNC_RUNSTATS_TIME
FROM TABLE (SNAP_GET_DYN_SQL_V95('mytestdb', -1))
AS SNAPDB
STATS_FABRICATE_TIME SYNC_RUNSTATS_TIME
---------------------- ------------------
2 12
1 30
For the view based on this table function:
SELECT STATS_FABRICATE_TIME,SYNC_RUNSTATS_TIME
FROM SYSIBMADM.SNAPDYN_SQL
STATS_FABRICATE_TIME SYNC_RUNSTATS_TIME
---------------------- ------------------
5 10
3 20
2 record(s) selected.Information returned
| Column name | Data type | Description or corresponding monitor element |
|---|---|---|
| SNAPSHOT_TIMESTAMP | TIMESTAMP | The date and time that the snapshot was taken. |
| NUM_EXECUTIONS | BIGINT | num_executions - Statement executions |
| NUM_COMPILATIONS | BIGINT | num_compilations - Statement compilations |
| PREP_TIME_WORST | BIGINT | prep_time_worst - Statement worst preparation time |
| PREP_TIME_BEST | BIGINT | prep_time_best - Statement best preparation time |
| INT_ROWS_DELETED | BIGINT | int_rows_deleted - Internal rows deleted |
| INT_ROWS_INSERTED | BIGINT | int_rows_inserted - Internal rows inserted |
| INT_ROWS_UPDATED | BIGINT | int_rows_updated - Internal rows updated |
| ROWS_READ | BIGINT | rows_read - Rows read |
| ROWS_WRITTEN | BIGINT | rows_written - Rows written |
| STMT_SORTS | BIGINT | stmt_sorts - Statement sorts |
| SORT_OVERFLOWS | BIGINT | sort_overflows - Sort overflows |
| TOTAL_SORT_TIME | BIGINT | total_sort_time - Total sort time |
| POOL_DATA_L_READS | BIGINT | pool_data_l_reads - Buffer pool data logical reads |
| POOL_DATA_P_READS | BIGINT | pool_data_p_reads - Buffer pool data physical reads |
| POOL_TEMP_DATA_L_READS | BIGINT | pool_temp_data_l_reads - Buffer pool temporary data logical reads |
| POOL_TEMP_DATA_P_READS | BIGINT | pool_temp_data_p_reads - Buffer pool temporary data physical reads |
| POOL_INDEX_L_READS | BIGINT | pool_index_l_reads - Buffer pool index logical reads |
| POOL_INDEX_P_READS | BIGINT | pool_index_p_reads - Buffer pool index physical reads |
| POOL_TEMP_INDEX_L_READS | BIGINT | pool_temp_index_l_reads - Buffer pool temporary index logical reads |
| POOL_TEMP_INDEX_P_READS | BIGINT | pool_temp_index_p_reads - Buffer pool temporary index physical reads |
| POOL_XDA_L_READS | BIGINT | pool_xda_l_reads - Buffer Pool XDA Data Logical Reads |
| POOL_XDA_P_READS | BIGINT | pool_xda_p_reads - Buffer Pool XDA Data Physical Reads |
| POOL_TEMP_XDA_L_READS | BIGINT | pool_temp_xda_l_reads - Buffer Pool Temporary XDA Data Logical Reads |
| POOL_TEMP_XDA_P_READS | BIGINT | pool_temp_xda_p_reads - Buffer Pool Temporary XDA Data Physical Reads monitor element |
| TOTAL_EXEC_TIME | BIGINT | total_exec_time - Elapsed statement execution time |
| TOTAL_EXEC_TIME_MS | BIGINT | total_exec_time - Elapsed statement execution time |
| TOTAL_USR_CPU_TIME | BIGINT | total_usr_cpu_time - Total user CPU for a statement |
| TOTAL_USR_CPU_TIME_MS | BIGINT | total_usr_cpu_time - Total user CPU for a statement |
| TOTAL_SYS_CPU_TIME | BIGINT | total_sys_cpu_time - Total system CPU for a statement |
| TOTAL_SYS_CPU_TIME_MS | BIGINT | total_sys_cpu_time - Total system CPU for a statement |
| STMT_TEXT | CLOB(2 M) | stmt_text - SQL statement text |
| DBPARTITIONNUM | SMALLINT | dbpartitionnum - Database partition number monitor element |
| STATS_FABRICATE_TIME | BIGINT | The total time (in milliseconds) spent by system to create needed statistics without table or index scan during query compilation for a dynamic statement. |
| SYNC_RUNSTATS_TIME | BIGINT | The total time (in milliseconds) spent on synchronous statistics-collect activities during query compilation for a dynamic statement. |
| * To calculate the total time spent for the monitor element that this column is based on, you must add the full seconds reported in the column for this monitor element that ends with _S to the fractional seconds reported in the column for this monitor element that ends with _MS, using the following formula: (monitor-element-name_S × 1,000,000 + monitor-element-name_MS) ÷ 1,000,000. For example, (ELAPSED_EXEC_TIME_S × 1,000,000 + ELAPSED_EXEC_TIME_MS) ÷ 1,000,000. | ||
