db2執(zhí)行計劃圖詳解 如何查看db2動態(tài)語句的執(zhí)行計劃?
如何查看db2動態(tài)語句的執(zhí)行計劃?db2有圖形執(zhí)行計劃顯示工具,如果沒有圖形環(huán)境,如unix主機,可以生成文本的文件來顯示執(zhí)行計劃1.如果第一次執(zhí)行,請先 connect to dbname,執(zhí)行db
如何查看db2動態(tài)語句的執(zhí)行計劃?
db2有圖形執(zhí)行計劃顯示工具,如果沒有圖形環(huán)境,如unix主機,可以生成文本的文件來顯示執(zhí)行計劃1.如果第一次執(zhí)行,請先 connect to dbname,執(zhí)行db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL建立執(zhí)行計劃表2.db2 set current explain mode explain設(shè)置成解釋模式,并不真正執(zhí)行下面將發(fā)出的sql命令3.db2 "select count(*) from staff"執(zhí)行你想要分析的sql語句4.db2 set current explain mode no取消解釋模式5.db2exfmt -d sample -g TIC -w -l -s % -n % -o db2exmt.out執(zhí)行計劃輸出到文件db2exmt.out
如何查看db2正在進行的sql執(zhí)行狀態(tài)?
第一種是查看應(yīng)用的snapshot,第二種是使用db2pd工具
方法1:使用db2 snapshot,這種方法不但可以看到正在執(zhí)行的SQL語句,還可以看這個SQL語句是什么時候開始執(zhí)行的,結(jié)合抓取snapshot的時間,就可以推斷出它執(zhí)行了多久。 但要求執(zhí)行SQL之前,監(jiān)控開關(guān)是開的。
方法2:使用db2pd,收集如下信息
C:windowssystem32>db2pd -db sample -app -dyn
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:50:23 -- Date 2016-04-26-13.52.10.917000
為什么DB2在執(zhí)行SQL查詢時線程集中在兩個CPU共有8個CPU解決方案?
但是無法顯示每個線程的cpu利用率情況,這時就可能出現(xiàn)這種情況,總的cpu利用率中user或system很高,但是用進程的cpu占用率進行排序時,沒有進程的user或system與之對應(yīng)。可以用下面的命令將cpu占用率高的線程找出來:這個命令首先指定參數(shù)‘H’,顯示線程相關(guān)的信息,格式輸出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段進行排序。這樣就可以找到占用處理器的線程了。