DB2 Version 10.1 for Linux, UNIX, and Windows

LONG_RUNNING_SQL 管理ビュー

LONG_RUNNING_SQL 管理ビューは、現在接続されているデータベースで実行されている SQL ステートメントを戻します。 このビューを使用することにより、データベース内の、実行時間の長い SQL ステートメントを識別することができます。

スキーマは SYSIBMADM です。

許可

以下のいずれかの権限が必要です。
  • LONG_RUNNING_SQL 管理ビューに対する SELECT 特権
  • LONG_RUNNING_SQL 管理ビューに対する CONTROL 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限
さらに、スナップショット・モニター・データにアクセスするには、以下のいずれかの権限も必要です。
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

デフォルトの PUBLIC 特権

制限のないデータベースでは、このビューが自動的に作成されると、SELECT 特権が PUBLIC に付与されます。

現在接続されているデータベースで実行時間が最も長い SQL ステートメントに関するレポートを検索します。
SELECT SUBSTR(STMT_TEXT, 1, 50) AS STMT_TEXT, AGENT_ID, 
   ELAPSED_TIME_MIN, APPL_STATUS, DBPARTITIONNUM 
   FROM SYSIBMADM.LONG_RUNNING_SQL ORDER BY DBPARTITIONNUM
以下はこの照会の出力例です。
STMT_TEXT                         AGENT_ID     ...  
-----------------------------...- --------...- ...  
select * from dbuser.employee              228 ...  
select * from dbuser.employee              228 ...  
select * from dbuser.employee              228 ...  
                                               ...  
3 record(s) selected.                          ...  
この照会の出力 (続き)。
... ELAPSED_TIME_MIN APPL_STATUS     DBPARTITIONNUM 
... ---------------- -----------...- -------------- 
...                2 UOWWAIT                      0 
...                0 CONNECTED                    1 
...                0 CONNECTED                    2 

使用上の注意

このビューを使用することにより、データベース内の、実行時間の長い SQL ステートメントを識別することができます。 現在実行中の照会を見て、実行時間が最も長いステートメント、および照会の現行状況を調べることができます。 エージェント ID をユニーク ID として使用することにより、その SQL ステートメントを含むアプリケーションをさらに詳しく調査することができます。 長時間実行していてロック待機している場合は、LOCKWAITS または LOCKS_HELD 管理ビューを使用してさらに深く掘り下げることもできます。 「waiting on User (ユーザー待機中)」という表示は、DB2® サーバーが何の動作も行っておらず、アプリケーションによる何らかの動作 (例えば次のフェッチの発行または次の SQL ステートメントのサブミット) を待機していることを意味します。

戻される情報

表 1. LONG_RUNNING_SQL 管理ビューによって戻される情報
列名 データ・タイプ 説明または対応するモニター・エレメント
SNAPSHOT_TIMESTAMP TIMESTAMP レポートの生成時刻。
ELAPSED_TIME_MIN INTEGER ステートメントの経過時間 (分)。
AGENT_ID BIGINT agent_id - アプリケーション・ハンドル (エージェント ID)
APPL_NAME VARCHAR(256) appl_name - アプリケーション名
APPL_STATUS VARCHAR(22) appl_status - アプリケーション状況。このインターフェースは、sqlmon.h での定義に基づくテキスト ID を戻します。これは次のいずれかです。
  • BACKUP
  • COMMIT_ACT
  • COMP
  • CONNECTED
  • CONNECTPEND
  • CREATE_DB
  • DECOUPLED
  • DISCONNECTPEND
  • INTR
  • IOERROR_WAIT
  • LOAD
  • LOCKWAIT
  • QUIESCE_TABLESPACE
  • RECOMP
  • REMOTE_RQST
  • RESTART
  • RESTORE
  • ROLLBACK_ACT
  • ROLLBACK_TO_SAVEPOINT
  • TEND
  • THABRT
  • THCOMT
  • TPREP
  • UNLOAD
  • UOWEXEC
  • UOWWAI
  • WAITFOR_REMOTE
AUTHID VARCHAR(128) auth_id - 許可 ID
INBOUND_COMM_ADDRESS VARCHAR(32) inbound_comm_address - インバウンド通信アドレス
STMT_TEXT CLOB(16 M) stmt_text - SQL 動的ステートメント・テキスト
DBPARTITIONNUM SMALLINT dbpartitionnum - データベース・パーティション番号モニター・エレメント
MEMBER SMALLINT member - データベース・メンバー・モニター・エレメント