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
ユーティリティでサポートされているオプションは次のとおりです。
オプション | 説明 |
---|---|
|
オプションのリストを出力し終了します。 ノート: |
|
TimesTenのリリース番号を出力し終了します。 |
|
リアルタイムのモニター・モードを実行します。定義済のメトリックのセットを監視し、メトリックおよび変更率を繰り返し表示します。スナップショット・モードとは異なり、データベースには何も保存されません。 ノート: これは |
|
モニター・モードでは、これは表示されるメトリックのセット間の時間間隔(秒)です。デフォルトは10秒です。間隔が短いとシステムのパフォーマンスにマイナスの影響を与える場合があります。 |
|
モニター・モードでは、これは
|
|
モニター・モードでは、これは ノート: |
|
メトリックのスナップショットを取得レベルに応じて収集し、それらのメトリックをデータベースに保存します。スナップショットが取得されると、そのID番号が表示されます。 ノート:
|
|
スナップショット・モードでは、これは取得するメトリックのレベルです。次の設定が可能です。
レポートで任意の2つのスナップショットを使用する場合は、各スナップショットに同じレベルを使用します。 ノート:
|
|
スナップショット・モードで、他のスナップショットと区別するなどスナップショットに説明またはノートを付与するには、このオプションを任意で使用します。 |
|
指定した2つのスナップショットから、デフォルトでHTML形式でレポートを生成します。同じ取得レベルで取得されるスナップショットを使用します。 ノート:
|
|
レポート・モードにおいて、これは1つ目のスナップショットのスナップショットIDです。 |
|
レポート・モードにおいて、これは2つ目のスナップショットのスナップショットIDです。 |
|
レポート・モードにおいて、レポートが書き込まれるファイル・パスおよびファイル名を任意で指定します。ファイルが指定されていない場合、TimesTenはレポートを標準出力に書き込みます。 |
|
レポート・モードにおいて、HTMLまたはプレーン・テキストの出力形式を指定します。 ノート: |
|
このオプションは、255というデータベース内のスナップショット数の制限下で、スナップショット記憶域を保持するために役立ちます。 |
|
|
|
|
または
|
メトリックを収集するデータベースを指定し接続します。次のいずれかを行います。
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-2はレポートの文メトリックを示しています。外部メトリック(stmt.executes
、stmt.prepares
およびstmt.reprepares
メトリック)および増分メトリック(zzinternal
メトリック)の両方が示されています。外部メトリックの方が一般的に関心度が高くなります。stmt.executes.count
の値は、他のすべてのstmt.executes
値の合計となります。
図5-3はレポートのトランザクション・メトリックを示しています。txn.commits.count
値は、txn.commits.durable
の値とtxn.commits.nondurable
の値との合計です。表示されている他のメトリックは、これらのメトリックのサブセットです。
図5-4は、レポートのSQL統計セクションからのSQL実行メトリックの引用を示しています。「実行でソート」メトリックおよび「準備でソート」メトリック(次の項で示す)を見ると、よく使用される文がどれであるか、準備数、各文の実行回数がわかります。文は何度も準備されないことが理想です。
図5-5は、レポートのSQL統計セクションからのSQL準備メトリックの引用を示しています。前述の「実行でソート」の項の説明を参照してください。
図5-6は、レポートのSQL統計セクションからのSQL文の引用を示しています。このレポートは、前述の「実行でソート」および「準備でソート」のレポートにリストされた、各文の完全なテキストを示しています。ここでは長い文は省略されています。
図5-7は、レポートからのPL/SQLメモリー・メトリックを示しています。これらは、ttPLSQLMemoryStats
組込みプロシージャからのメトリックです。GetHitRatio
またはPinHitRatio
の開始値と終了値には著しい差はありません。
図5-8はレポートのレプリケーション・メトリックを示しています。各トランスミッタに対し(1つのマスターに複数のトランスミッタがある場合もある)、このメトリックはレシーバに送信されたレコード数など、ログを介した進捗を示します。Repl_Peer
はサブスクライバを示します。Repl_Log_Behind
およびRepl_Latency
は、レプリケーションがデータベース・ワークロードに対応しているかどうかを示す上で重要です。
図5-9は、レポートからのパラレル・レプリケーション/AWTメトリックを示しています。Repl_Peer
はサブスクライバを示します。パラレル・レプリケーション/AWTの構成時に、レプリケーション・メトリック(前項で説明)がワークロードに対応することが難しいことが示された場合、パラレル・レプリケーション/AWTメトリックにより原因を表示できます。各値はすべてのトラックの集計ですが、「詳細の表示」(メトリック表の最後にあります。ここでは図示されていません)をクリックすると、各トラックのデータを表示できます。トラック切替えのswitchinおよびswitchoutメトリックの値が高いと、競合を示している場合があります。waitsメトリックの値が高くても問題があり、あるトランザクションが開始またはコミットできるようになる前に、前のトランザクションがコミットするのを待機しなければならないなどの状況を示しています。
図5-10はレポートからのログ・メトリックを示しています。レポート出力では、log.file.earliest
およびlog.file.latest
の数字は、スナップショットの開始および終了の値を示しています。log.buffer.waits
メトリックは、特に関心の高い値です。ログ・バッファ待機は、アプリケーション処理が、トランザクション・データをログ・バッファに挿入できず、停止してログ・バッファ領域が解放されるのを待機する必要があるときに発生します。通常この理由は、ログ・フラッシャ・スレッドが十分な速さでデータをクリアしていなかったためです。これは、ログ・バッファ領域が不十分、ディスク帯域幅が不十分、ディスクへの書込みに時間がかかりすぎる、またはログ・フラッシャがCPUの能力に依存していることを示していることが考えられます。(また、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「トランザクション・ログのバッファおよびファイルの管理」および「ログ・バッファおよびログ・ファイル・サイズのパラメータの構成」も参照してください。)
図5-11はレポートのログの保持情報を示しています。ここでは、各チェックポイント・ファイルに対するチェックポイント・ログ保持のブックマーク位置と、各レプリケーション・サブスクライバに対するレプリケーション・ログ保持のブックマーク位置が示されています。また、このレポートではバックアップ、XLA、長時間実行トランザクションについてのログ保持情報も示されることがあります。開始と終了の値が同じ場合には、何も動きがなかったことを示します。
ログ・ファイル全体にわたり、順調に進行した証拠があることが理想です。(この追跡にはttStats
の監視情報がさらに役立ちます。)
図5-12は、レポートのチェックポイント・メトリックを示しています。
図5-13は、レポートのAWTキャッシュ・グループ・メトリックを示しています。値はすべてのAWTキャッシュ・グループから集計されます。情報には、Oracle Databaseへのコール数、Oracleに対するコミット、ロールバックおよび再試行の数、PL/SQL操作およびSQL操作によって挿入、削除および更新された行数が含まれます。
図5-14は、レポートの自動リフレッシュ・キャッシュ・グループ・メトリックを示しています。値はすべての自動リフレッシュ・キャッシュ・グループから集計されます。キャッシュ・グループが完全リフレッシュ・モードであるか増分リフレッシュ・モードであるかは、cg.autorefresh.cycles.completed
値(リフレッシュの合計回数)に対するcg.autorefresh.full_refreshes
値により反映されます。
図5-15は、レポート索引アクティビティ、メモリー・アクティビティおよび表アクティビティからのデータベース・アクティビティ・メトリックの引用を示しています。ハッシュ索引および範囲索引については、削除、挿入、フェッチされた行およびスキャンの情報が含まれます。メモリー使用量については、サイズ・データを示します。表については、読取り、削除、挿入および更新された行を示します。
図5-16はレポートのロック・メトリックを示しています。デッドロック、取得したロック、付与されたロック、タイムアウトに関する情報が提供されます。特に、lock.deadlocks
、lock.locks_granted.wait
およびlock.timeouts
はロック競合を示すことがあります。
図5-17はレポートのXLAブックマーク情報を示しています。各ブックマークについて、情報が削除される前のログ・ファイルの場所を示すPurge_LSN
およびXLAトランザクションの位置と最新のログ・ファイルの位置間にずれがないかどうかを示すLog_Behind
に対する開始と終了の値が示されます。
図5-18は、レポートのデータベース構成パラメータ設定を示しています。参考のため、各レポートには各TimesTen接続属性の開始値および終了値が示されています。
接続属性の詳細は、「接続属性」を参照してください。