請問大神,如何查看一個條sql陳述句在DB2中的執行時間點?
資料庫有性能問題,已找到可疑的SQL,想確認在性能出現問題的時候該SQL是否在執行。
uj5u.com熱心網友回復:
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目錄下找找。
uj5u.com熱心網友回復:
示例:
$ 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/92408.html
標籤:DB2
下一篇:CSRF-跨站請求偽造
