SQLTRACE (Cheetah)

oninit

2008年12月15日 07:33

( Updated: 2008/12/15, Original: 2007/02/19 )
IDS Cheetah (V11.10) や Cheetah2 ( V11.50 ) のSQLTRACE ( ONCONFIG パラメーター)を試してみましょう..

ONCONFIGに、次のような行を書いてからoninitを実行してオンラインモードにしてみます。
SQLTRACE level=low,ntraces=1000,size=1024,mode=global

こうすると、以後データベースサーバーで実行されたすべてのSQL文が、ntraceやsizeで指定された範囲ですべて記録されます。記録した内容は、onstat -g his で表示できます。それぞれのSQLについて、実行時間やメモリー使用状況などの詳しい情報が表示されます。

dbaccessなどを使い、SQLでダイナミックにオンにすることもできます。
execute function task("SET SQL TRACING ON",2000,1024);



今までだと、SQLIDEBUGなどの環境変数を使ってクライアント側で記録するか、onstat -g stm/sql/ses などで「最後に実行された」SQLを取得するなどの方法がありましたが、それらに比べるととても詳しい実行履歴がとれそうです。

でも、いつも有効な状態にしておくと負荷がかかるんでしょうね。マニュアルを見ると、セッション単位でオンにしたりもできるようです。

execute function task("SET SQL USER TRACING OFF",147);



残念ながら、V11.10 よりも古いバージョン ( IDS 9.4 や IDS 10.0 ) では使用できません。

関連記事