SNAP_GET_DYN_SQL_V95 表函数-检索 dynsql 逻辑组快照信息

SNAP_GET_DYN_SQL_V95 表函数从 dynsql 逻辑数据组返回快照信息。

注: 已不推荐使用此表函数,并将其替换为 SNAP_GET_DYN_SQL 表函数
请参阅 表 1 ,以获取可返回的完整信息列表。

语法

Read syntax diagramSkip visual syntax diagramSNAP_GET_DYN_SQL_V95(dbname , member)

模式为 SYSPROC。

表函数参数

dbname
类型为 VARCHAR (128) 的输入参数,用于指定与当前连接的数据库在同一实例中的有效数据库名称。 指定目录条目类型为 "Indirect" 或 "Home" 的数据库名称,如 LIST DATABASE DIRECTORY 命令所返回。 指定 NULL 或空字符串以从当前连接的数据库获取快照。
成员
类型为 INTEGER 的可选输入参数,用于指定有效数据库成员编号。 对当前数据库成员指定 -1 ,或对所有活动数据库成员的聚集指定 -2 。 如果 dbname 未设置为 NULL ,并且 member 设置为 NULL,那么将为 member隐式设置 -1 。 如果未使用此输入选项,即仅提供 dbname ,那么将从所有活动数据库成员返回数据。 活动数据库成员是数据库可供应用程序连接和使用的成员。

如果 dbnamemember 都设置为 NULL,那么将尝试从 SNAP_WRITE_FILE 过程创建的文件中读取数据。 请注意,此文件可能是在任何时候创建的,这意味着数据可能不是最新的。 如果具有相应快照 API 请求类型的文件不存在,那么 SNAP_GET_DYN_SQL_V95 表函数将生成当前连接的数据库和数据库成员号的快照。

权限

需要下列其中一个权限:
  • 对 SNAP_GET_DYN_SQL_V95 表函数的 EXECUTE 特权
  • DATAACCESS 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

缺省 PUBLIC 特权

在非限制性数据库中,当自动创建该功能时,将向 PUBLIC 授予 EXECUTE 特权。

示例

检索在当前连接的数据库的当前连接的数据库成员上运行的动态 SQL 列表,按读取的行数排序。
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 
下列是从此查询输出的示例。
PREP_TIME_WORST      ...
-------------------- ...
                   0 ...
                   3 ...
                     ...
                   4 ...
                     ...
                   4 ...
                     ...
                   4 ...
                     ...
                   3 ...
                     ...
                   4 ...
                     ...
此查询的输出(继续)。
... 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,                       
运行工作负载后,用户可以将以下查询与表函数配合使用。
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
对于基于此表函数的视图:
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.

返回的信息

表 1. SNAP_GET_DYN_SQL_V95 表函数返回的信息
列名 数据类型 描述或相应的监视元素
snapshot_timestamp TIMESTAMP 获取快照的日期和时间。
NUM_EXECUTIONS BIGINT num_executions - 语句执行次数
num_compilations BIGINT num_compilations - 语句编译次数
prep_time_worst BIGINT prep_time_worst - 语句最长编译时间
prep_time_best BIGINT prep_time_best - 语句最短编译时间
INT_ROWS_DELETED BIGINT int_rows_deleted - 删除的内部行数
INT_ROWS_INSERTED BIGINT int_rows_inserted - 插入的内部行数
INT_ROWS_UPDATED BIGINT int_rows_updated - 更新的内部行数
ROWS_READ BIGINT rows_read - 读取行数
ROWS_WRITTEN BIGINT rows_written - 写入的行数
stmt_sorts BIGINT stmt_sorts - 语句排序数
SORT_OVERFLOWS BIGINT sort_overflows - 排序溢出数
TOTAL_SORT_TIME BIGINT total_sort_time - 排序总时间
POOL_DATA_L_READS BIGINT pool_data_l_reads - 缓冲池数据逻辑读取数
POOL_DATA_P_READS BIGINT pool_data_p_reads - 缓冲池数据物理读取数
POOL_TEMP_DATA_L_READS BIGINT pool_temp_data_l_reads - 缓冲池临时数据逻辑读取数
POOL_TEMP_DATA_P_READS BIGINT pool_temp_data_p_reads - 缓冲池临时数据物理读取数
POOL_INDEX_L_READS BIGINT pool_index_l_reads - 缓冲池索引逻辑读取数
POOL_INDEX_P_READS BIGINT pool_index_p_reads - 缓冲池索引物理读取数
POOL_TEMP_INDEX_L_READS BIGINT pool_temp_index_l_reads - 缓冲池临时索引逻辑读取数
POOL_TEMP_INDEX_P_READS BIGINT pool_temp_index_p_reads - 缓冲池临时索引物理读取数
POOL_XDA_L_READS BIGINT pool_xda_l_reads - 缓冲池 XDA 数据逻辑读取数
POOL_XDA_P_READS BIGINT pool_xda_p_reads - 缓冲池 XDA 数据物理读取数
POOL_TEMP_XDA_L_READS BIGINT pool_temp_xda_l_reads - 缓冲池临时 XDA 数据逻辑读取数
POOL_TEMP_XDA_P_READS BIGINT pool_temp_xda_p_reads -“缓冲池临时 XDA 数据物理读取数”监视元素
total_exec_time BIGINT total_exec_time - 执行语句所耗用的时间
TOTAL_EXEC_TIME_MS BIGINT total_exec_time - 执行语句所耗用的时间
total_usr_cpu_time BIGINT total_usr_cpu_time-语句的用户 CPU 总数
TOTAL_USR_CPU_TIME_MS BIGINT total_usr_cpu_time-语句的用户 CPU 总数
total_sys_cpu_time BIGINT total_sys_cpu_time-语句的系统 CPU 总计
TOTAL_SYS_CPU_TIME_MS BIGINT total_sys_cpu_time-语句的系统 CPU 总计
STMT_TEXT CLOB (2 M) stmt_text - SQL 语句文本
DBPARTITIONNUM SMALLINT dbpartitionnum -“数据库分区号”监视元素
STATS_FABRICATE_TIME BIGINT 在动态语句的查询编译期间,系统在不进行表或索引扫描的情况下创建所需统计信息所花费的总时间 (以毫秒为单位)。
SYNC_RUNSTATS_TIME BIGINT 动态语句的查询编译期间同步统计信息收集活动所花费的总时间 (以毫秒为单位)。
* 要计算此列所基于的监视元素的总耗用时间,必须使用以下公式将以 _S 结束的此监视元素的列中报告的完整秒数与以 _MS 结束的此监视元素的列中报告的小数秒数相加: (monitor-element-name_S × 1,000,000 + monitor-element-name_MS) ÷ 1,000,000。 例如, (ELAPSED_EXEC_TIME_S × 1,000,000 + ELAPSED_EXEC_TIME_MS) ÷ 1,000,000。