TimesTen ClassicのttStats

TimesTen Classicでは、ttStatsユーティリティで次の機能を実行できます:

  • データベースのパフォーマンス・メトリックをそれぞれの前の間隔での変更率を計算することにより、リアルタイムで監視および表示します。

  • メトリックのスナップショットを収集してデータベースに保存し、指定されたスナップショットのペアの値と変更率を使用してレポートを生成します。(これらの機能は、TT_STATS PL/SQLパッケージへのコールにより実行されます。)

ttStatsユーティリティは、TimesTen Classicのシステム表、ビューおよび組込みプロシージャからメトリックを収集します。レポートには、メモリー使用量、接続およびロード・プロファイルの概要などの情報に続き(必要に応じて) SQL文、トランザクション、PL/SQLメモリー、レプリケーション、ログとログの保持、チェックポイント、キャッシュ・グループ、ラッチ、ロック、XLAおよびTimesTen接続属性に関するメトリックが含められます。監視では、この項で後述するように、キーとなる小セットのデータが表示されます。

TimesTenクライアントDSNに対しては、ユーティリティのttStatsCSバージョンを使用してください。

ノート:

クライアント/サーバー・プロトコルにおけるリリース間互換性はTimesTenでサポートされていますが、ツールttStatsCSは、下位リリース互換性および上位リリース互換性がありません。したがって、同じバージョンのクライアント/サーバー接続にのみ使用可能です。

動作モードには次の3つがあります。

  • モニター・モード(デフォルトのモード): 定義済のメトリックのセットを監視することによってデータベースのパフォーマンスをリアルタイムで追跡し、それらのメトリックを(前回の表示から値に変更のあったものをメインで)表示し、適切な場合値の変更率を算出します。情報はユーザーに対する表示のための標準出力に出力され、ディスクには保存されません。

    期間または反復回数が指定されない場合、[Ctrl]キーを押しながら[C]キーを押すことにより実行が中断されるまで、監視は実行されます。

    ノート:

    モニター・モードで表示されるメトリックのセットは、メトリックが収集されたシステム表および組込みプロシージャへの変更により、変更されることがあります。

  • スナップショット・モード: 取得レベルに応じてメトリックのスナップショットを取得し、それらをデータベースのSYS.SNAPSHOT_XXXXシステム表に保存します。スナップショットが取得されると、そのID番号が標準出力に表示されます。取得レベルはSYS.SYSTEMSTATSからのメトリックに対してのみ適用されます。他のソースからのメトリックについては、取得レベルにかかわらず同じデータが収集されます。

    デフォルトでは、多くの目的に適した一般的なメトリックのセットが収集されますが、数の少ない基本的なメトリックのセット、すべての使用可能なメトリックまたはSYSTEMSTATS以外のソースからのメトリックのみも指定できます。

  • レポート・モード: 指定した2つのメトリックのスナップショットからレポートを生成します。レポートはデフォルトでHTML形式ですが、プレーン・テキスト形式を要求することもできます。出力ファイルを指定することも、標準出力に出力を表示することもできます。ttStatsレポートは、Oracle Databaseのパフォーマンス分析ツールに例えた場合、Oracle Automatic Workload Repository (AWR)レポートに類似しています。

モニター・モードでは、データベースからの読取りによるオーバーヘッドは回避されます。スナップショット・モードおよびレポート・モードでは、ttStatsユーティリティはTimesTenで提供されるTT_STATS PL/SQLパッケージに対する便利なフロント・エンドとなります。このパッケージの詳細は、Oracle TimesTen In-Memory Database PL/SQLパッケージ・リファレンス』「TT_STATS」を参照してください。

ドライバ・マネージャを介してTimesTenに接続する場合は、このユーティリティを使用しないでください。

必要な権限

  • モニター・モード: モニター・モードを実行するには特別な権限は必要ありませんが、ttSQLCmdCacheInfo組込みプロシージャおよびtransaction_log_api (XLA)表からのデータを含める監視情報には、ADMIN権限が必要です。

  • スナップショット・モードおよびレポート・モード: デフォルトで、TT_STATS PL/SQLパッケージのセキュリティ制限のため、インスタンス管理者のみがスナップショット・モードまたはレポート・モードで実行する権限があります。ADMINユーザーを含む他のユーザーは、次の例に示すように、インスタンス管理者またはADMINユーザーによってTT_STATSパッケージに対するEXECUTE権限を付与される必要があります。

    GRANT EXECUTE ON SYS.TT_STATS TO scott;

構文

サポートされている名前と値のペアは次のとおりです。

ttStats [-h | -help]
ttStats [-V | -version]
ttStats [-monitor] [-interval seconds]
        [-duration seconds] [-iterations count]
           {DSN | -connStr connection_string}
ttStats  -snapshot [-level capture_level] [-description snap_desc]
           {DSN | -connStr connection_string}
ttStats  -report [-snap1 snapid1 -snap2 snapid2]
         [-html | -text] [-outputFile filename]
           {DSN | -connStr connection_string}
ttStats  -drop [-begin_snap snapid1 [-end_snap snapid2]]
           {DSN | -connStr connection_string}

ノート:

-monitor-snapshotまたは-reportのいずれか1つのみを指定します。

オプション

TimesTen ClassicのttStatsユーティリティでサポートされているオプションは次のとおりです。

オプション 説明

-h

-help

オプションのリストを出力し終了します。

ノート: ttStatsコマンドラインで何も入力されなかった場合、またはオプションがDSNまたは接続文字列なしで入力された場合も同じ結果です。

-V

-version

TimesTenのリリース番号を出力し終了します。

-monitor

リアルタイムのモニター・モードを実行します。定義済のメトリックのセットを監視し、メトリックおよび変更率を繰り返し表示します。スナップショット・モードとは異なり、データベースには何も保存されません。

ノート: これは-monitor-snapshotまたは-reportのいずれも指定されない場合のデフォルトのモードです。

-interval seconds

モニター・モードでは、これは表示されるメトリックのセット間の時間間隔(秒)です。デフォルトは10秒です。間隔が短いとシステムのパフォーマンスにマイナスの影響を与える場合があります。

-duration seconds

モニター・モードでは、これはttStatsを実行する継続時間(秒)です。この継続時間後に、ユーティリティは終了します。

-iterationsオプションについての情報も参照してください。

-iterations count

モニター・モードでは、これはttStatsがメトリックの収集および表示を実行する反復の回数です。これらの回数の反復後に、ユーティリティは終了します。

ノート: -duration-iterationsの両方を指定した場合、2つの制限のうち最初の制限に到達した際に監視は終了します。どちらも指定しない場合、[Ctrl]キーを押しながら[C]キーを押すことによって中断されるまで監視は継続します。

-snapshot

メトリックのスナップショットを取得レベルに応じて収集し、それらのメトリックをデータベースに保存します。スナップショットが取得されると、そのID番号が表示されます。

ノート:

  • TimesTenでは、スナップショットの取得時にすべてのSYSTEMSTATSが収集されますが、指定された取得レベル内のメトリックのみが意味のある累積値を持ちます。指定のレベル以外のメトリックは、0 (ゼロ)の値になります。

  • このオプションは、TT_STATS PL/SQLパッケージのCAPTURE_SNAPSHOTプロシージャへのコールにより実行されます。

-level capture_level

スナップショット・モードでは、これは取得するメトリックのレベルです。次の設定が可能です。

  • 0: SYS.SYSTEMSTATS以外のメトリックのみ。

  • 1: 基本的なメトリックのみ。

  • 2 (デフォルト): 一般的なメトリック。これには、基本的なメトリックが含まれます。このレベルは、ほとんどの場合に適しています。

  • 3: 使用可能なすべてのメトリック。

レポートで任意の2つのスナップショットを使用する場合は、各スナップショットに同じレベルを使用します。

ノート:

  • これらのレベルは、TT_STATS PL/SQLパッケージの取得レベルNONEBASICTYPICALおよびALLに対応します。

  • 取得レベルはSYS.SYSTEMSTATS表からのメトリックに対してのみ適用されます。他のソースからのメトリックについては、取得レベルにかかわらず同じデータが収集されます。

-description snap_desc

スナップショット・モードで、他のスナップショットと区別するなどスナップショットに説明またはノートを付与するには、このオプションを任意で使用します。

-report

指定した2つのスナップショットから、デフォルトでHTML形式でレポートを生成します。同じ取得レベルで取得されるスナップショットを使用します。

ノート:

  • スナップショットIDを指定しない場合、使用可能なスナップショットの(日付、時間、取得レベル、ノート書きの付いた)リストが表示され、使用する各IDを入力するようプロンプト表示されます。スナップショットIDを1つのみ指定した場合、コマンドを2つ入力するように指示されます。この場合、2つのスナップショットを指定して再度コマンドを入力します。

  • このオプションは、TT_STATS PL/SQLパッケージのGENERATE_REPORT_HTMLまたはGENERATE_REPORT_TEXT (-textオプションが使用された場合)プロシージャへのコールにより実行されます。

-snap1 snapid1

レポート・モードにおいて、これは1つ目のスナップショットのスナップショットIDです。

-snap2 snapid2

レポート・モードにおいて、これは2つ目のスナップショットのスナップショットIDです。

-outputFile filename

レポート・モードにおいて、レポートが書き込まれるファイル・パスおよびファイル名を任意で指定します。ファイルが指定されていない場合、TimesTenはレポートを標準出力に書き込みます。

-html | -text

レポート・モードにおいて、HTMLまたはプレーン・テキストの出力形式を指定します。

ノート: -htmlを指定する必要はありません。形式を指定しない場合には、レポートは、デフォルトでHTML形式になります。

-drop

-begin_snapおよび-end_snap (この値を含む)で指定された範囲のスナップショットをシステムから削除します。

このオプションは、255というデータベース内のスナップショット数の制限下で、スナップショット記憶域を保持するために役立ちます。

-begin_snap snapid1

-dropオプションの場合、削除するスナップショットの範囲の最初のスナップショットIDを指定します。

-end_snap snapid2

-dropオプションの場合、削除するスナップショットの範囲の最後のスナップショットIDを指定します。

-end_snapが指定されていない場合、-begin_snapで指定されたスナップショットのみが削除されます。

-connStr connection_string

または

DSN

メトリックを収集するデータベースを指定し接続します。次のいずれかを行います。

  • -connStrを前に付けてODBC接続文字列を指定します。

  • -connStrを付けずに、コマンドラインの最後にDSN(データ・ソース名)を指定します。

TimesTen DSNの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「TimesTenデータベースを識別するためのデータソース名の指定」を参照してください。

この項では、ttStatsの監視およびレポート出力の例を紹介します。

ノート:

これらの例は一例にすぎません。詳細は変更される場合があります。

監視の例

この項では、モニター・モードからのサンプル出力を示します。

% ttStats database1

Connected to TimesTen Version 22.1.1.21.0 TimesTen Cache version 22.1.1.21.0

Waiting for 10 seconds for the next snapshot
Description                          Current  Rate/Sec  Notes
date.2021-Feb-20 16:49:25      -869676175380467200           1  sample #, not rate
connections.count                         12
db.size.temp_high_water_mark.kb         7153       7
lock.locks_granted.immediate             832       1
log.log_bytes_per_transaction              0
loghold.bookmark.log_force_lsn    0/12027904
loghold.bookmark.log_write_lsn    0/12050944
loghold.checkpoint_hold_lsn       0/12025856                  database1.ds0
loghold.checkpoint_hold_lsn       0/12023808                  database1.ds1
stmt.executes.count                       44       1
stmt.executes.selects                     32       1

ノート:

日付および時刻の後の数値はスナップショットの時刻の数値表現であり、無視できます。

次のコマンドライン例では、監視は2回の反復後に停止し、接続属性値の設定に接続文字列を使用することを指定しています。

% ttStats -iterations 2 
-connStr "DSN=database1;PLSQL_MEMORY_ADDRESS=20000000"

スナップショットの例

次の例では、デフォルトの一般的レベルで2つのスナップショットを取得します。

% ttStats -snapshot database1

Connected to TimesTen Version 22.01.0001.0021 TimesTen Cache version 
22.1.1.21.0.
Snapshot 1 at TYPICAL level was successfully captured.

% ttStats -snapshot database1

Connected to TimesTen Version 22.1.1.21.0 TimesTen Cache version 22.1.1.21.0
Snapshot 2 at TYPICAL level was successfully captured.

レポートの例

次の例では、前の項で生成したスナップショットからレポートを作成します。

% ttStats -report -outputFile testreport.html -snap1 1 -snap2 2 database1

Connected to TimesTen Version 22.01.0001.0021 TimesTen Cache version 22.1.1.21.0.
Report testreport.html was created.

この項の以降の説明では、ttStatsレポートが生成するメトリックの表からの引用を紹介します。この出力は、デフォルトのHTML形式を使用して生成されたものです。

ノート:

SWTキャッシュ・グループ・メトリック、ローカル・キャッシュ・グループ・メトリック、動的グローバル・キャッシュ・グループ・メトリック、グリッド・メトリックおよびラッチ・メトリックについての例は示されていません。

ラッチ・メトリックを含むには、次のようにttXactAdminユーティリティを使用して、データベースでラッチ・メトリックを有効にする必要があります。

% ttXactAdmin -latchstats on DSN

図5-1はレポート・サマリーの大部分を示しています。サマリーは、次に続く表に詳細が記されており、データベース・メトリックをすばやく確認するのに適しています。内容は次のとおりです。

  • メモリーの使用率と接続: この情報にはメモリー使用率(db.sizeメトリック)、およびクライアント/サーバー接続と直接接続の数を含む確立された接続(connections.establishedメトリック)についての情報が含まれます。connections.established.threshold_exceededの値がゼロでない場合には、接続が多すぎることを示しています。

  • ロード・プロファイル: チェックポイント、ソート(ORDER BY文など)、ログ・バッファ待機(ログ・バッファが一杯になり、ディスクにフラッシュするときの遅延)、挿入、更新、削除、解析(準備など)、コミットおよびロールバックなどの数を示し、ワークロードの概念を示します。解析が多すぎるか、永続コミット(非永続コミットよりも高負荷)が多すぎるかどうかを検討します。

  • インスタンス効率: Command Cache Hit %Non-Parse/Execs %Lock Hit %およびLog Buffer No Wait %が表示されます。すべてがほぼ100%になる必要があります。

    • Lock Hit %: 待機することなく認められたロック要求の割合を推定します。

    • Non-Parse/Execs %: 準備または再準備の必要のないSQL文の割合を表します。

    • Command Cache Hit %: コマンド・キャッシュで見付からなかったSQLコマンドの実行の割合を推定します。

    • Log Buffer No Wait %: ログ・バッファの待機のため、待機する必要のないログ挿入の割合を推定します。

図5-1 ttStatsレポート: サマリー

図5-1の説明はこの後にあります
「図5-1 ttStatsレポート:サマリー」の説明

図5-2はレポートの文メトリックを示しています。外部メトリック(stmt.executesstmt.preparesおよびstmt.repreparesメトリック)および増分メトリック(zzinternalメトリック)の両方が示されています。外部メトリックの方が一般的に関心度が高くなります。stmt.executes.countの値は、他のすべてのstmt.executes値の合計となります。

図5-2 ttStatsレポート: 文統計

図5-2の説明はこの後にあります
「図5-2 ttStatsレポート: 文統計」の説明

図5-3はレポートのトランザクション・メトリックを示しています。txn.commits.count値は、txn.commits.durableの値とtxn.commits.nondurableの値との合計です。表示されている他のメトリックは、これらのメトリックのサブセットです。

図5-3 ttStatsレポート: トランザクション統計

図5-3の説明はこの後にあります
「図5-3 ttStatsレポート: トランザクション統計」の説明

図5-4は、レポートのSQL統計セクションからのSQL実行メトリックの引用を示しています。「実行でソート」メトリックおよび「準備でソート」メトリック(次の項で示す)を見ると、よく使用される文がどれであるか、準備数、各文の実行回数がわかります。文は何度も準備されないことが理想です。

図5-4 ttStatsレポート: SQL実行統計

図5-4の説明はこの後にあります
「図5-4 ttStatsレポート: SQL実行統計」の説明

図5-5は、レポートのSQL統計セクションからのSQL準備メトリックの引用を示しています。前述の「実行でソート」の項の説明を参照してください。

図5-5 ttStatsレポート: SQL準備統計

図5-5の説明が続きます
「図5-5 ttStatsレポート: SQL準備統計」の説明

図5-6は、レポートのSQL統計セクションからのSQL文の引用を示しています。このレポートは、前述の「実行でソート」および「準備でソート」のレポートにリストされた、各文の完全なテキストを示しています。ここでは長い文は省略されています。

図5-6 ttStatsレポート: SQLコマンド・テキスト

図5-6の説明はこの後にあります
「図5-6 ttStatsレポート: SQLコマンド・テキスト」の説明

図5-7は、レポートからのPL/SQLメモリー・メトリックを示しています。これらは、ttPLSQLMemoryStats組込みプロシージャからのメトリックです。GetHitRatioまたはPinHitRatioの開始値と終了値には著しい差はありません。

図5-7 ttStatsレポート: PL/SQLメモリー統計

図5-7の説明はこの後にあります
「図5-7 ttStatsレポート: PL/SQLメモリー統計」の説明

図5-8はレポートのレプリケーション・メトリックを示しています。各トランスミッタに対し(1つのマスターに複数のトランスミッタがある場合もある)、このメトリックはレシーバに送信されたレコード数など、ログを介した進捗を示します。Repl_Peerはサブスクライバを示します。Repl_Log_BehindおよびRepl_Latencyは、レプリケーションがデータベース・ワークロードに対応しているかどうかを示す上で重要です。

図5-8 ttStatsレポート: レプリケーション統計

図5-8の説明はこの後にあります
「図5-8 ttStatsレポート: レプリケーション統計」の説明

図5-9は、レポートからのパラレル・レプリケーション/AWTメトリックを示しています。Repl_Peerはサブスクライバを示します。パラレル・レプリケーション/AWTの構成時に、レプリケーション・メトリック(前項で説明)がワークロードに対応することが難しいことが示された場合、パラレル・レプリケーション/AWTメトリックにより原因を表示できます。各値はすべてのトラックの集計ですが、「詳細の表示」(メトリック表の最後にあります。ここでは図示されていません)をクリックすると、各トラックのデータを表示できます。トラック切替えのswitchinおよびswitchoutメトリックの値が高いと、競合を示している場合があります。waitsメトリックの値が高くても問題があり、あるトランザクションが開始またはコミットできるようになる前に、前のトランザクションがコミットするのを待機しなければならないなどの状況を示しています。

図5-9 ttStatsレポート: パラレル・レプリケーション/AWT統計

図5-9の説明はこの後にあります
「図5-9 ttStatsレポート: パラレル・レプリケーション/AWT統計」の説明

図5-10はレポートからのログ・メトリックを示しています。レポート出力では、log.file.earliestおよびlog.file.latestの数字は、スナップショットの開始および終了の値を示しています。log.buffer.waitsメトリックは、特に関心の高い値です。ログ・バッファ待機は、アプリケーション処理が、トランザクション・データをログ・バッファに挿入できず、停止してログ・バッファ領域が解放されるのを待機する必要があるときに発生します。通常この理由は、ログ・フラッシャ・スレッドが十分な速さでデータをクリアしていなかったためです。これは、ログ・バッファ領域が不十分、ディスク帯域幅が不十分、ディスクへの書込みに時間がかかりすぎる、またはログ・フラッシャがCPUの能力に依存していることを示していることが考えられます。(また、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「トランザクション・ログのバッファおよびファイルの管理」および「ログ・バッファおよびログ・ファイル・サイズのパラメータの構成」も参照してください。)

図5-10 ttStatsレポート: ログ統計

図5-10の説明はこの後にあります
「図5-10 ttStatsレポート: ログ統計」の説明

図5-11はレポートのログの保持情報を示しています。ここでは、各チェックポイント・ファイルに対するチェックポイント・ログ保持のブックマーク位置と、各レプリケーション・サブスクライバに対するレプリケーション・ログ保持のブックマーク位置が示されています。また、このレポートではバックアップ、XLA、長時間実行トランザクションについてのログ保持情報も示されることがあります。開始と終了の値が同じ場合には、何も動きがなかったことを示します。

ログ・ファイル全体にわたり、順調に進行した証拠があることが理想です。(この追跡にはttStatsの監視情報がさらに役立ちます。)

図5-11 ttStatsレポート: ログの保持

図5-11の説明はこの後にあります
「図5-11 ttStatsレポート: ログの保持」の説明

図5-12は、レポートのチェックポイント・メトリックを示しています。

図5-12 ttStatsレポート: チェックポイント統計

図5-12の説明はこの後にあります
「図5-12 ttStatsレポート: チェックポイント統計」の説明

図5-13は、レポートのAWTキャッシュ・グループ・メトリックを示しています。値はすべてのAWTキャッシュ・グループから集計されます。情報には、Oracle Databaseへのコール数、Oracleに対するコミット、ロールバックおよび再試行の数、PL/SQL操作およびSQL操作によって挿入、削除および更新された行数が含まれます。

図5-13 ttStatsレポート: AWTキャッシュ・グループ統計

図5-13の説明はこの後にあります
「図5-13 ttStatsレポート: AWTキャッシュ・グループ統計」の説明

図5-14は、レポートの自動リフレッシュ・キャッシュ・グループ・メトリックを示しています。値はすべての自動リフレッシュ・キャッシュ・グループから集計されます。キャッシュ・グループが完全リフレッシュ・モードであるか増分リフレッシュ・モードであるかは、cg.autorefresh.cycles.completed値(リフレッシュの合計回数)に対するcg.autorefresh.full_refreshes値により反映されます。

図5-14 ttStatsレポート: 自動リフレッシュ・キャッシュ・グループ統計

図5-14の説明はこの後にあります
「図5-14 ttStatsレポート: 自動リフレッシュ・キャッシュ・グループ統計」の説明

図5-15は、レポート索引アクティビティ、メモリー・アクティビティおよび表アクティビティからのデータベース・アクティビティ・メトリックの引用を示しています。ハッシュ索引および範囲索引については、削除、挿入、フェッチされた行およびスキャンの情報が含まれます。メモリー使用量については、サイズ・データを示します。表については、読取り、削除、挿入および更新された行を示します。

図5-15 ttStatsレポート: データベース・アクティビティ統計

図5-15の説明はこの後にあります
「図5-15 ttStatsレポート: データベース・アクティビティ統計」の説明

図5-16はレポートのロック・メトリックを示しています。デッドロック、取得したロック、付与されたロック、タイムアウトに関する情報が提供されます。特に、lock.deadlockslock.locks_granted.waitおよびlock.timeoutsはロック競合を示すことがあります。

図5-16 ttStatsレポート: ロック統計

図5-16の説明はこの後にあります
「図5-16 ttStatsレポート: ロック統計」の説明

図5-17はレポートのXLAブックマーク情報を示しています。各ブックマークについて、情報が削除される前のログ・ファイルの場所を示すPurge_LSNおよびXLAトランザクションの位置と最新のログ・ファイルの位置間にずれがないかどうかを示すLog_Behindに対する開始と終了の値が示されます。

図5-17 ttStatsレポート: XLA情報

図5-17の説明はこの後にあります
「図5-17 ttStatsレポート: XLA情報」の説明

図5-18は、レポートのデータベース構成パラメータ設定を示しています。参考のため、各レポートには各TimesTen接続属性の開始値および終了値が示されています。

接続属性の詳細は、「接続属性」を参照してください。

図5-18 ttStatsレポート: 構成パラメータ

図5-18の説明はこの後にあります
「図5-18 ttStatsレポート: 構成パラメータ」の説明