DB2で非同期REORGコマンドの進捗状況を知る

DB2にはREORGコマンドというものがあります。
索引または表を再編成してくれる重要なコマンドです。
コマンドはこんな感じです。

テーブル

DB2 "REORG TABLE スキーマ.テーブル名 INPLACE ALLOW WRITE ACCESS START"

インデックス

DB2 "REORG INDEXES ALL FOR TABLE スキーマ.テーブル名 ALLOW WRITE ACCESS"

REORGコマンドのオプションに「INPLACE」というものがあります。
処理を同期実行するか、非同期実行するかを選択できるものです。
テーブルのREORGコマンドを同期実行すると、ロックをずっととるので
例えばシステムが24時間稼働などの場合には、「INPLACE」オプションが使えると思います。


ただ1つ問題なのが非同期実行にすると、進捗状況が分かりにくくなっちゃいます。
今までは非同期のテーブルのREORGを実行すると表ロックになるので、
スナップショットで対象のテーブルの表ロックが無くなるまで待つという方法をとっていました。


ところが今日、僕の前の席の先輩が
非同期でテーブルのREORGの進捗状況を知るコマンドを教えてくれました。
そのコマンドもスナップショットを使っているのですがオプションが違いました。

テーブルのREORGの進捗状況を知るコマンド

DB2 "GET SNAPSHOT FOR TABLES ON データソース名" | GREP -P REORG対象のテーブル名

このコマンドを実行するとこんな感じに情報が取得できます。

 表の REORG 情報:
   REORG タイプ                                           =
        再利用
        INPLACE 表の REORG
        書き込みアクセスの許可
   索引の REORG                                           = 0
   表スペースの REORG                                     = 13
   開始時刻                                               = 2009-04-21 18:16:45.408137
   REORG フェーズ                                         =
   最大フェーズ                                           =
   フェーズ開始時刻                                       =
   状況                                                   = 完了
   現行カウンター                                         = 29626
   最大カウンター                                         = 29627
   完了                                                   = 0
   終了時刻                                               = 2009-04-21 18:16:48.621929

上記のパラメータのうち、「状況」が「完了」になっていれば処理は終わっています。
これはかなり使えます( ̄▽ ̄)