请问大神,如何查看一个条sql语句在DB2中的执行时间点

北落师门Annie 2018-01-31 05:20:10
请问大神,如何查看一个条sql语句在DB2中的执行时间点?
数据库有性能问题,已找到可疑的SQL,想确认在性能出现问题的时候该SQL是否在执行。
...全文
3472 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
焊工0531 2018-04-12
  • 打赏
  • 举报
回复
引用 1 楼 ata15 的回复:
1、分析执行过的SQL语句的效率: SELECT rows_read / (num_executions + 1) as avg_rows_read, rows_written / (num_executions + 1) as avg_rows_written, stmt_sorts / (num_executions + 1) as avg_sorts, total_exec_time / (num_executions + 1) as avg_exec_time, substr(stmt_text,1,1000) as SQL_Stmt FROM SYSIBMADM.SNAPDYN_SQL ORDER BY avg_exec_time desc fetch first 10 rows only; ## 字段解释 num_executions 语句执行次数 avg_exec_time 平均执行时间 SQL_Stmt 语句内容截取 2、查看某个SQL的:执行情况。 使用Linux控制台。 将待分析sql写入sample.sql文件,多条SQL使用分号隔开。 执行db2batch -d dbname -f sample.sql > sample.log 查看sample.log即可,内容包括,执行语句、执行结果,以及各种时间。 Windows环境下db2cmd 应该也是可以调用的,在DB2 bin目录下找找。
示例: $ cat sample.sql select * from sys_user; select * from sys_role; $ db2batch -d bidms -f sample.sql > sample.log $ cat sample.log * Timestamp: Thu Apr 12 2018 10:24:57 CST --------------------------------------------- * SQL Statement Number 1: select * from sys_user; 结果略…… * 24 row(s) fetched, 24 row(s) output. * Elapsed Time is: 0.000599 seconds --------------------------------------------- * SQL Statement Number 2: select * from sys_role; 结果略…… * 5 row(s) fetched, 5 row(s) output. * Elapsed Time is: 0.000204 seconds * Summary Table: Type Number Repetitions Total Time (s) Min Time (s) Max Time (s) Arithmetic Mean Geometric Mean Row(s) Fetched Row(s) Output --------- ----------- ----------- -------------- -------------- -------------- --------------- -------------- -------------- ------------- Statement 1 1 0.000599 0.000599 0.000599 0.000599 0.000599 24 24 Statement 2 1 0.000204 0.000204 0.000204 0.000204 0.000204 5 5 * Total Entries: 2 * Total Time: 0.000803 seconds * Minimum Time: 0.000204 seconds * Maximum Time: 0.000599 seconds * Arithmetic Mean Time: 0.000402 seconds * Geometric Mean Time: 0.000350 seconds --------------------------------------------- * Timestamp: 四 4月 12 2018 10:24:57 CST
焊工0531 2018-04-12
  • 打赏
  • 举报
回复
1、分析执行过的SQL语句的效率: SELECT rows_read / (num_executions + 1) as avg_rows_read, rows_written / (num_executions + 1) as avg_rows_written, stmt_sorts / (num_executions + 1) as avg_sorts, total_exec_time / (num_executions + 1) as avg_exec_time, substr(stmt_text,1,1000) as SQL_Stmt FROM SYSIBMADM.SNAPDYN_SQL ORDER BY avg_exec_time desc fetch first 10 rows only; ## 字段解释 num_executions 语句执行次数 avg_exec_time 平均执行时间 SQL_Stmt 语句内容截取 2、查看某个SQL的:执行情况。 使用Linux控制台。 将待分析sql写入sample.sql文件,多条SQL使用分号隔开。 执行db2batch -d dbname -f sample.sql > sample.log 查看sample.log即可,内容包括,执行语句、执行结果,以及各种时间。 Windows环境下db2cmd 应该也是可以调用的,在DB2 bin目录下找找。

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧