rdbpmsqllistコマンドを使用し、処理時間が長いSQL文から順番に一覧を表示します。
コマンドの実行例と表示内容を以下に示します。
$ rdbpmsqllist Symfoware Server Performance Monitor / SQL list information Period of analysis: 2008/10/15 08:00:00 - 2008/10/15 11:48:33 (1) (2) (3) (4) (5) (6) time connection-id running-time status SQL 2008/10/15-09:18:19.598 2008101015375000000315 13.856 normal SELECT COUNT(*)FROM USR1.TBL1 2008/10/15-11:33:18.311 2008101015375000000118 1.438 normal UPDATE USR1.TBL8 SET COL1=COL1+1 2008/10/15-10:08:02.819 2008101015375000000290 1.192 normal COMMIT
(1) SQL文の処理時間の解析を行った対象の期間 (処理時間が長いSQL文の調査を行う対象とした期間です。 遅い処理が発生した時間帯が判っている場合には、対象となる期間を指定することで、 情報を絞り込むことができます。 対象となる期間を指定するには、rdbpmsqllistコマンドのpオプションを使用します。)
(2) SQL文の開始時刻 (SQL文の実行を開始した時刻です。表示形式は、“西暦/月/日-時:分:秒.ミリ秒”です。)
(3) SQL文を実行したコネクションのコネクションID (コネクションIDはSymfoware/RDBが自動的に採番して割り当てます。 コネクションIDおよびSQL文の開始時刻をrdbpmsqllistコマンドのcオプションおよびtオプションに 指定して実行すると、コネクションおよびSQL文に関する詳細な情報を表示することができます。)
(4) SQL文の処理時間 (Symfoware/RDBがSQL文を処理していた時間です。単位は秒.ミリ秒です。 一覧はこの時間が長い順番にソートされて表示されています。)
(5) SQL文の終了ステータス normal : 正常に終了した error : エラーで終了した canceled : タイムアウトやrdbtermコマンドにより処理が中断した
(6) SQL文 (実行したSQL文です。 先頭から50文字以内を表示します。 英小文字は英大文字で表示します。 SQL文の前後の空白は削除して表示します。 SQL文中の冗長な空白は削除して表示します。)
この例では、2008年10月15日の9時18分19秒に実行した単一行SELECT文で約14秒の時間がかかっていることがわかります。
このSQL文の処理が長かった原因を調査するための詳細な情報を取得する方法については、“2.2.2 SQL文のアクセスプランと実行状態の内訳を表示する”を参照してください。
注意
処理が完了していないSQL文に関する情報は表示されません。動作中のSQL文に関する情報を参照するには、そのSQL文の処理の完了を待ってから、情報の表示を行ってください。
採取対象となるSQL文は、以下のとおりです。
CALL文
COMMIT文
DELETE文:位置づけ
DELETE文:探索
INSERT文
OPEN文
ROLLBACK文
単一行SELECT文
UPDATE文:位置づけ
UPDATE文:探索
問合せ式(Java連携、ODBC連携または.NET Framework連携のアプリケーションの場合)
採取対象のSQL文がOPEN文の場合、カーソルが閉じられるまでにSymfoware Serverがそのカーソルを処理するのにかかった時間が、処理時間となります。