基準測試是從各種不同方面(例如數據庫響應時間、cpu 和內存使用情況)對應用程序進行評測的一個過程。基準測試基于一個可重復的環境,以便能夠在相同的條件下運行相同的測試。之后,對測試收集到的結果可以進行評估和比較。
db2batch 是一種基準測試工具,它以一組 SQL 和/或 XQuery 語句作為輸入,動態地準備語句和描述語句,并返回一個結果集。取決于 db2batch 命令中所使用的選項,結果集可以返回這些語句的執行時間、關于內存使用情況(例如緩沖池)的數據庫管理器快照和緩存信息。
可以在一個 flat 文件或標準輸入中指定要運行基準測試的語句。在輸入文件中可以設置很多控制選項。指定這些選項的語法是:--#SET control_option value 。下面是包含控制選項的一個輸入文件的例子。要獲得控制選項的完整列表,請參考 Information Center。
-- db2batch.sql -- ------------ --#SET PERF_DETAIL 3 --#SET ROWS_OUT 5 -- This query lists employees, the name of their department -- and the number of activities to which they are assigned for -- employees who are assigned to more than one activity less than -- full-time. --#COMMENT Query 1 select lastname, firstnme, deptname, count(*) as num_act from employee, department, emp_act where employee.workdept = department.deptno and employee.empno = emp_act.empno and emp_act.emptime < 1 group by lastname, firstnme, deptname having count(*) > 2; --#SET PERF_DETAIL 1 --#SET ROWS_OUT 5 --#COMMENT Query 2 select lastname, firstnme, deptname, count(*) as num_act from employee, department, emp_act where employee.workdept = department.deptno and employee.empno = emp_act.empno and emp_act.emptime < 1 group by lastname, firstnme, deptname having count(*) <= 2; |
- 選項 PERF_DETAIL 3 意味著將返回關于花費的時間和數據庫管理器、數據庫及應用程序的快照這些性能方面的細節。
- 選項 ROWS_OUT 5 意味著無論查詢返回的實際行數是多少,只從結果集中取 5 行。
- COMMENT Query1 將語句命名為 Query1。
下面的命令在 SAMPLE 數據庫上調用基準測試工具,輸入文件為 db2batch.sql。
db2batch -d sample -f db2batch.sql
這個命令將返回查詢的結果集(限 5 行)和查詢所花費的時間及 CPU 時間。另外還返回數據庫管理器、數據庫和應用程序快照。由于輸出很大,因此這里只顯示 db2batch 命令的概要。
* Summary Table: Type Number Repetitions Total Time (s) Min Time (s) ... --------- ----------- ----------- -------------- -------------- Statement 1 1 0.052655 0.052655 ... Statement 2 1 0.004518 0.004518 ... ...Max Time (s) Arithmetic Mean Geometric Mean Row(s) Fetched Row(s) Output -------------- --------------- -------------- -------------- ------------- ... 0.052655 0.052655 0.052655 5 5 ... 0.004518 0.004518 0.004518 8 5 * Total Entries: 2 * Total Time: 0.057173 seconds * Minimum Time: 0.004518 seconds * Maximum Time: 0.052655 seconds * Arithmetic Mean Time: 0.028587 seconds * Geometric Mean Time: 0.015424 seconds |
db2batch 命令支持很多選項。這里只列出其中一些選項,讓您對這個工具的威力有所了解。
- -m parameter_file 用參數值指定用于綁定到 SQL 語句參數占位符的一個輸入文件。
- -r result_file 指定存放命令結果的輸出文件。
- -i short|long|complete 指定從哪個方面測量所花費的時間。short 測量運行每條語句所花費的時間。long 測量運行每條語句所花費的時間,包括語句之間的開銷。complete 測量運行每條語句所花費的時間,分別報告準備、執行和取數據的時間。
- -iso 指定語句使用的隔離級別。默認情況下,db2batch 使用 Repeatable Read 隔離級別。