現在実行中のQueryが知りたいとき

db2 list applicationsで現在それだけの処理がされているかが解りますが、
ここで上がってきたプロセスが何の処理をしているかは解りません。

通常わかる必要もないのですが、ずっとプロセスが居座っている場合
何をしているのかを確認してその居座る原因を解明したい場合には
db2pdを使いよいかもです。

インスタンスユーザにて

db2pd -everything

を実行すると現在のDBの状況が出てきますのでファイルなどに落とせば
追跡ができるようになります。

自分は以下のような感じで居座る原因のQueryの特定を行いました・


db2pd -everything > hoge
で現在の情報を取得(hogeは任意で・・)。
 

「Applications:」項目にlist applications と同様の情報が出てきていますので
該当のプロセスの 「C-StmtUID」、「L-StmtUID」の値をメモります。


先の「C-StmtUID」、「L-StmtUID」を検索します。
この際、検索するStmtUIDの前後に空白を入れるとよいです。


検索をしていくと「Dynamic SQL Statements:」項目のQueryに引っかかりだします。
このときの項目3個目に先の「C-StmtUID」や「L-StmtUID」のものがあれば
現在実行中や実行がされたQueryになるはずです。