ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

TRACKPRG

TRACKPRGコマンドは、トラッキングをオンにしている間に実行されるすべてのプログラムのパフォーマンス・コストを追跡するコマンドです。TRACKPRGによって意味のある情報を得るためには、Oracle OLAPで実行するセッションは1つのみにする必要があります。さらに、ホスト・コンピュータで多くのプロセスが起動されるほど、TRACKPRGの結果の精度が低下します。

TRACKPRGをオンにして、追跡するプログラムを実行し、再度TRACKPRGを使用して結果を取得します。各プログラムが実行されるたびに、TRACKPRGはそのコスト・データを1つのエントリとして、そのトラッキング・リストに格納します。別のプログラムを実行すると、新しいエントリがリストに追加され、Oracle OLAPメモリー(未使用の記憶域)に保持されます。

プログラムまたはコードの行は、実行に時間がかかる場合はパフォーマンス・コストが高いとみなされます。TRACKPRGで相対的にコストが高いプログラムを特定し、さらにMONITOR文を使用してそのプログラム内で所要時間の長い行を特定します。必要な場合は、両方のコマンドを同時に使用できます。

構文

TRACKPRG {ON|OFF|file|INIT}

ここで、fileの構文は次のとおりです。

FILE [APPEND] [file-name]

パラメータ

ON

実行するプログラムの検索を開始して、トラッキング・リストにタイミング・データを収集できるようにします。(トラッキングがすでにオンになっている場合は、中断せずに現行のトラッキング処理を継続し、トラッキングがオフになっている場合は間隔を置いて再開します。)

OFF

プログラムのトラッキングを停止し、現在トラッキング・リストにあるすべてのタイミング・データを固定します。これによりすぐに、またはセッションの後半で、リストを現行の出力ファイルまたはテキスト・ファイルに送信できます。

FILE

トラッキング・リストを送信する場所を指定します。TRACKPRG FILEはトラッキング・リストには影響を与えないため、異なる送信先に同じリストを繰返し送信できます。

APPEND

Oracle OLAPがトラッキング・リストを、file-nameにより示されるファイルと置き換えるのではなく、その内容に追加するように指定します。

file-name

Oracle OLAPがデータを送信する先のテキスト式。そのファイルがカレント・ディレクトリにない場合、ファイルの名前にディレクトリ・オブジェクトの名前を含める必要があります。


注意:

ディレクトリ・オブジェクトはデータベースで定義され、ディレクトリおよびディレクトリ内のファイルへのアクセスを制御します。CDA文を使用して、カレント・ディレクトリ・オブジェクトを特定および指定できます。使用するデータベース・ユーザー名で読取りおよび書込み可能なファイルがあるディレクトリ・オブジェクトへのアクセス権については、Oracle DBAに問い合せてください。

file-nameを省略すると、Oracle OLAPは現在トラッキング・リストにあるタイミング・データを現行の出力ファイルに送信します。

INIT

現行のトラッキング・リストにあるタイミング・データを廃棄し、そのリストに使用されていたOracle OLAPメモリーを解放します(メモリーを他の目的で使用する場合に役立ちます)。さらに、トラッキングがオンになっている場合は、プログラムの実行の待機を再開し、それらのデータを完全に新しいトラッキング・リストに収集できるようになります。

使用上の注意

単一の実行

トラッキング・リストの各エントリ(つまり、行)には、単一のプログラムの単一の実行に関する情報が記録されます。

コールの深さ

各エントリには、現行のプログラムに対するコール(存在する場合)の深さ、つまり現行の行で報告されたプログラムに対して行われたプログラム・コールの数が記録されます。TRACKPRGの出力では、コールの深さはプログラム名のインデントにより示されます。TRACKPRGは、インデントされた各プログラムについて、そのプログラムに対するコールを行ったプログラムの名前もエントリの終わりに記録します。

タイミング・データのタイプ

各エントリで、TRACKPRGは2つのタイプのタイミング・データを記録します。

  • 限定的コスト -- プログラムによってコールされた他のプログラムで消費された時間を除く、そのプログラムで消費された時間

  • 包括的コスト -- プログラムによってコールされた他のプログラムで消費された時間を含む、そのプログラムで消費された時間

これにより、両方のタイプのコストに関するレポートを生成するオプションを選択できます。

エントリのセクション

TRACKPRGの出力では、各エントリ(行)は次の4つのセクションに分けられます。

  • プログラム名: 文字の列1から38

  • 限定的な時間: 列39から49

  • 包括的な時間: 列50から60

  • コール側プログラムの名前: 列61から77

(MAINプログラムの)TRACKPRG出力のサンプルは次のとおりです。参照用の列番号が付いています。

1234567890123456789012345678901234567890123456789012345678901234567890
 
MAIN                                  39.6198425 225.551453
 COMM                                  43.793808  185.93161 MAIN
  _C.SYS.INFO                         .112533569 .112533569 COMM
  _C.SYS.INFO                         .087173462 .087173462 COMM
  _C.MAIN                             61.414505  141.938095 COMM
   _C.CON                             66.7147064 80.5235901 _C.MAIN
    _C.SYS.DORETURN                   .032287598 .032287598 _C.CON

TRACKREPORTプログラム

Oracle OLAPのレポート機能を使用して、TRACKPRGによって作成されるテキスト・ファイルのタイミング・データからレポートを生成する場合、TRACKREPORTプログラムを使用できます。構文は次のとおりです。

TRACKREPORT textfile-name

textfile-name引数は、レポート作成の元となる、TRACKPRGにより作成されたテキスト・ファイルのファイル名です。TRACKREPORTは、FILEREAD文を使用してデータをOracle OLAP変数に読み込んだ後、Oracle OLAPのレポート機能を使用して次のサンプルのようなレポートを生成します。

                     Exclusive  Inclusive  Number of 
    Program name        cost       cost      calls   
____________________ __________ __________ __________
 
COMM                 43.793808   185.93161          1
MAIN                 39.6198425 225.551453          1
_C.CON               66.7147064 80.5235901          1
_C.ENV.PUTOPTS       1.15296936 1.15296936          1
_C.ENV.XLATEIN       6.32765198 6.32765198          1
_C.MAIN               61.414505 141.938095          1
_C.SYS.DORETURN      .032287598 .032287598          1
_C.SYS.INFO          .289932251 .289932251          3
_C.SYS.NOF10         .038269043 .038269043          1
_CONNECT              5.3609314 6.16748047          1
_CONNNONE            .806549072 .806549072          1

TRACKPRGファイルからのデータをさらに処理する場合、モデルとしてTRACKREPORTプログラムを使用して独自のプログラムを作成できます。

対象外のサブプログラム

タイミング・データを収集しているプログラムがコールするすべてのサブプログラムについての個別のパフォーマンス・データが必要ない場合、プログラム全体で、対象外にするサブプログラムをコールする前にトラッキングをオフにし、対象とするプログラムをコールする前にトラッキングを再びオンにします。この操作は繰返し実行できます。ただし、TRACKPRGは対象外のサブプログラムを個別に追跡しないため、対象外のサブプログラムが消費する時間はプログラム全体の包括的な時間だけでなく、限定的な時間の合計にも割り当てられる点に注意してください。

非常に小さなプログラムでのTRACKPRGの使用

非常に小さいプログラムは、結果を正確に再現できないことがあります。CPUが処理を中断して他のタスクを実行すると、実行時間の合計に占めるその時間の割合が大きくなるからです。

TRACKPRGの測定単位

MONITORコマンドおよびTRACKPRGコマンドでは、実行時間を記録する単位としてミリ秒を使用します。実行時間には、I/Oの所要時間および次の文の待機時間は含まれません。

例10-154 TRCAKPRGを使用したタイミング・データの収集

この例では、mybjtプログラムとそのプログラムがコールするすべてのプログラムのタイミング・データが、mybjttim.datというファイルに収集されます。

TRACKPRG ON
mybjt
TRACKPRG OFF
TRACKPRG FILE mybjttim.dat
TRACKPRG INIT
TRACKREPORT mybjttim.dat

例10-155 INITキーワードおよびTRACKREPORTの使用

この例では、トラッキングをオンにしてprog1の実行に関するタイミング・データを収集し、データをprog1.trkという名前のファイルに送信します。その後、INITキーワードを使用して既存のトラッキング・リストを廃棄し、2番目のプログラムのデータを収集してファイルに送信できるようにします。過程の全体で、トラッキングはオンのままです。最後に、トラッキングをオフにし、INITキーワードを使用してトラッキング・リストで使用されていたメモリーを解放した後、TRACKREPORTプログラムをコールして2つのファイルに格納されたデータから生成された2つのレポートを出力します。

TRACKPRG ON
prog1
TRACKPRG FILE prog1.trk
TRACKPRG INIT
prog2
TRACKPRG FILE prog2.trk
TRACKPRG OFF
TRACKPRG INIT
TRACKREPORT prog1.trk
TRACKREPORT prog2.trk