ttStatsユーティリティの使用方法

ttStatsユーティリティを使用すると、データベース・メトリック(統計や状態などの情報)をモニターして、システム・スナップショットを自動的に取得して、メトリックのスナップショットを取得して比較できます。ttStatsユーティリティでは、次の機能を実行できます。

  • パフォーマンス・メトリックをリアルタイムでモニタリングおよび表示し、前のインターバルからの変化率を計算する。

データベースのレポートをモニタリングおよび分析すると、グリッドの全体的なパフォーマンスの判定に役立ちます。データベースの全体的なパフォーマンスを把握することで、データベースを最適な状態で稼働させるための予防措置を講じることができます。

TimesTen ClassicとTimesTen Scaleoutでは、ttStatsの動作にいくつかの違いがあります。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』ttStatsに関する項を参照してください。TT_STATS PL/SQLパッケージの詳細は、『Oracle TimesTen In-Memory Database PL/SQLパッケージ・リファレンス』TT_STATSを参照してください。

次のトピックでは、ttStatsユーティリティの使用方法について説明します。

ttStatsユーティリティの構成の表示

ttStatsConfigGet組込みプロシージャを使用して、ttStatsユーティリティの構成設定を表示できます。この組込みプロシージャを実行すると、ttStatsユーティリティの収集設定を設定するpollSecretentionDaysおよびretainMinutesというパラメータの値が表示されます。

次の例では、ttStatsユーティリティの収集設定を示しています。

Command> call ttStatsConfigGet();
< POLLSEC, 30 >
< RETENTIONDAYS, 62 >
< RETAINMINUTES, 120 >
3 rows found.

TimesTen ScaleoutのみでサポートされているpollSecretentionDaysおよびretainMinutesの各パラメータを使用して、TimesTen Scaleoutの統計情報のポーリング間隔、集計データのパージ時間、およびRAWデータのパージ時間をそれぞれ設定できます。ポーリング間隔のパラメータであるpollsecは、ttStatsデーモンがデータベースのメトリックを収集する間隔(秒単位)を指定します。

ポーリング間隔の値は、データベースのパフォーマンスに影響を与えません。ただし、10秒というポーリング間隔を指定した場合は、通常、60秒のポーリング間隔の場合と比べて領域の使用量が6分の1になります。ほとんどのメトリックは集計され、各要素上のPermSize領域の約6MB (場合によっては最大10年分のメトリック)を使用します。ただし、ログ保持、上位SQLコマンド、チェックポイント履歴などの一部のメトリックは集計できません。ttStats -snapshotInfoユーティリティを使用して、該当するメトリックに使用されているPermSize領域の量を確認できます。

ttStatsConfigGet組込みプロシージャおよびttStatsユーティリティの詳細は、それぞれ『Oracle TimesTen In-Memory Databaseリファレンス』ttStatsConfigGetおよびttStatsを参照してください。

ttStatsユーティリティの構成

ttStatsConfig組込みプロシージャは、ttStatsユーティリティの構成設定を制御するとともに、ttStatsによってシステム・スナップショットが自動的に取得されるタイミングを制御します。ttStatsConfig組込みプロシージャを呼び出して、ttStatsユーティリティに影響を与える統計収集パラメータを変更します。ttStatsConfig組込みプロシージャのパラメータ、およびSYS.V$STATS_CONFIGシステム・ビューの詳細は、それぞれ、『Oracle TimesTen In-Memory Databaseリファレンス』ttStatsConfig、および『Oracle TimesTen In-Memory Databaseシステム表およびビュー・リファレンス』SYS.V$STATS_CONFIGを参照してください。

ポーリング間隔のパラメータであるpollsecは、ttStatsデーモンがデータベースのメトリックを収集する間隔(秒単位)を指定します。

次の例では、TimesTen Scaleoutの統計のポーリング間隔の現在値を返しています。

SQL> SELECT VALUE FROM SYS.V$STATS_CONFIG WHERE PARAM='POLLSEC';
< 30 >
1 row found.

次の例では、TimesTen Scaleoutの統計のポーリング間隔を45秒に設定しています。

Command> call ttStatsConfig('pollsec', 45);
< POLLSEC, 45 >
1 row found.

保存時間間隔のパラメータであるretentionDaysは、ttStatsデーモンがデータベースのメトリックを削除する間隔(日単位)を指定します。たとえば、保存時間間隔が62日である場合、ttStatsデーモンは1日目のスナップショットを63日目に削除します。PermSizeの値によって、必要とする保存時間間隔が十分サポートされることを確認してください。

次の例では、TimesTen Scaleoutの統計の保存時間間隔の現在値を返しています。

SQL> SELECT VALUE FROM SYS.V$STATS_CONFIG WHERE PARAM='RETENTIONDAYS';
< 62 >
1 row found.

次の例では、TimesTen Scaleoutの統計の保存時間間隔を30日間に設定しています。

Command> call ttStatsConfig('retentionDays', 30);
< RETENTIONDAYS, 30 >
1 row found.

パージ時間間隔のパラメータであるretainMinutesは、ttStatsデーモンがデータベースのRAWメトリックをパージする間隔(分単位)を指定します。たとえば、保存時間間隔が120分である場合、ttStatsデーモンは120分ごとにRAWメトリックをパージします。

次の例では、TimesTen Scaleoutの統計のパージ時間間隔の現在値を返しています。

SELECT VALUE FROM SYS.V$STATS_CONFIG WHERE PARAM='RETAINMINUTES';
< 120 >
1 row found.

次の例では、TimesTen Scaleoutの統計のパージ時間間隔を60分に設定しています。

Command> call ttStatsConfig('retainMinutes', 60);
< RETAINMINUTES, 60 >
1 row found.

ttStatsユーティリティを使用したデータベースのモニター

ttStats -monitorユーティリティを使用して、ローカル・インスタンス上のデータベース・ワークロードをリアルタイムでモニターします。-durationまたは-iterationsオプションを指定することで、ttStatsユーティリティがTimesTen Scaleoutをモニターする時間の長さを設定できます。モニタリングは、-duration-iterationsオプションで指定した制限時間に達するまで、または[Ctrl]+[C]を押すまで続行されます。時間間隔のオプションである-intervalを指定して、表示されるメトリックのセット間の時間間隔(秒単位)を設定することもできます。これらのオプションは同時に指定できます。次のオプションを指定できます。

  • -duration: このオプションは、ttStatsユーティリティを実行する時間の長さ(秒単位)を設定します。この継続時間後に、ユーティリティは終了します。

    次の例では、データベースを60秒間モニターします。

    % ttStats -monitor -duration 60 database1
    Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
     
    Waiting for 10 seconds for the next snapshot
    Description                          Current  Rate/Sec  Notes
    date.2017-Feb-22 11:33:41         1456169621         1  sample #, not rate
    cmdcache.id:278352904.preps           142072         1  COMMIT
    cmdcache.id:283596680.execs           135242         1  SELECT COUNT(*) FROM SYS.TTSTATS
    cmdcache.id:283613080.execs           340200         3  SELECT COUNT(*) FROM SYS.TTSTATS
    cmdcache.id:283619720.execs           135242         1  INSERT INTO SYS.TTSTATS_SQL_COMM
    connections.count                         15            
    db.joins.nested_loop                   22874         1  
    db.table.full_scans                   136618         2  
    lock.locks_granted.immediate        24138575       291  
    log.buffer.bytes_inserted         4887634664     52988  
    log.buffer.insertions               41123321       447  
    log.file.writes                      247855         2  
    log.forces                           183285         1  
    log.log_bytes_per_transaction             0            
    loghold.bookmark.log_force_lsn  88/46899200            
    loghold.bookmark.log_write_lsn  88/46899464            
    loghold.checkpoint_hold_lsn     88/41543680            database1.ds0
    loghold.checkpoint_hold_lsn     88/33990656            database1.ds1
    plsql.GetHitRatio                     0.714     0.000  
    plsql.GetHits                       380.000     0.200  
    plsql.Gets                          532.000     0.200  
    plsql.PinHitRatio                     0.989     0.000  
    plsql.PinHits                     34556.000     0.500  
    plsql.Pins                        34933.000     0.500  
    stmt.executes.count                 1103839        12  
    stmt.executes.inserts                280246         2  
    stmt.executes.selects                777408         9  
    stmt.prepares.count                  173038         1  
    txn.commits.count                    233082         2  
    txn.commits.durable                  182275         1  
    ...
  • -iterations: このオプションは、ttStatsユーティリティがメトリックを収集および表示するときの反復実行回数を設定します。これらの回数の反復後に、ユーティリティは終了します。

    次の例では、反復回数を3に設定しています。

    % ttStats -monitor -iterations 3 database1
    Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
     
    Waiting for 10 seconds for the next snapshot
    Description                           Current  Rate/Sec  Notes
    date.2017-Feb-22 11:54:34          1456170874         1  sample #, not rate
    connections.count                          15            
    lock.locks_granted.immediate         24195281         1  
    log.log_bytes_per_transaction               0            
    loghold.bookmark.log_force_lsn    88/61253632            
    loghold.bookmark.log_write_lsn    88/61253896            
    loghold.checkpoint_hold_lsn       88/55470080            database1.ds0
    loghold.checkpoint_hold_lsn       88/48414720            database1.ds1
    plsql.GetHitRatio                       0.730     0.000  
    plsql.GetHits                         410.000     0.200  
    plsql.Gets                            562.000     0.200  
    plsql.PinHitRatio                       0.989     0.000  
    plsql.PinHits                       34667.000     0.200  
    plsql.Pins                          35044.000     0.200  
    stmt.executes.count                   1106494         1  
    stmt.executes.selects                  779348         1  
    ...
  • -interval: このオプションは、表示されるメトリックのセット間の時間間隔(秒単位)を設定します。

    次の例では、間隔時間を30秒に設定しています。

    % ttStats -interval 30 -monitor database1
    Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
     
    Waiting for 30 seconds for the next snapshot
    Description                          Current  Rate/Sec  Notes
    date.2017-Feb-19 15:18:38         1455923918         1  sample #, not rate
    connections.count                         15            
    lock.locks_granted.immediate        12536701         1  
    log.log_bytes_per_transaction              0            
    loghold.bookmark.log_force_lsn   45/13309952            
    loghold.bookmark.log_write_lsn   45/13310216            
    loghold.checkpoint_hold_lsn       45/4683776            database1.ds0
    loghold.checkpoint_hold_lsn      45/11804672            database1.ds1
    plsql.GetHitRatio                      0.700     0.000  
    plsql.GetHits                        355.000     0.067  
    plsql.Gets                           507.000     0.067  
    plsql.PinHitRatio                      0.980     0.000  
    plsql.PinHits                      18201.000     0.067  
    plsql.Pins                         18578.000     0.067 
    ...

ttStatsユーティリティを使用したスナップショットの作成

ttStats -snapshotユーティリティを使用して、システムによって生成された最新のデータベース・スナップショットに任意のスナップショットIDを関連付けます。スナップショットは、データベースのメトリックを示すレポートを作成するために使用されます。システムによって生成されたスナップショットが自動的にパージされると、関連付けられたユーザー・スナップショットもパージされます。

次の例では、ttStats -snapshotユーティリティを使用してスナップショットを作成しています。-snapshotコマンドを使用するときには、-descriptionコマンドが必要になります。-descriptionコマンドを使用すると、たとえば他のスナップショットと区別するために、そのスナップショットの説明やノートを指定できます。

% ttStats -snapshot -description 1 database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
Snapshot ID was 88412

この例で作成されたスナップショットは、1というスナップショットIDを使用して参照できます。

ttStatsユーティリティを使用した2つのスナップショット間のレポートの作成

ttStats -reportユーティリティを使用して、TimesTen Scaleoutデータベースの2スナップショット間のレポートを作成します。ttStatsのレポートでは、データベースの2のスナップショット間の統計の変化が示されます。-outputFileオプションを使用すると、レポートの書込み先となるファイルのパスと名前を指定できます。次のいずれかのオプションのセットを使用して、レポートの開始ポイントと終了ポイントを定義します。

  • スナップショットIDを指定する、-snap1および-snap2の各オプション。レポート期間は、少なくとも4つの既存スナップショットID値にまたがっている必要があります。したがって、-snap1-snap2の間に少なくとも3つのスナップショットが必要です。

  • タイムスタンプを指定する、-timestamp1および-timestamp2の各オプション。

ttStats -snapshotInfo コマンドを使用して、使用可能なデータベース・スナップショットを表示できます。

次の例では、ttStats -snapshotInfoユーティリティを使用して、使用可能なスナップショットのIDおよびタイムスタンプを返しています。このコマンドは、集計されたスナップショットとttStatsConfig組込みプロシージャの値に関する情報も返します。

% ttStats -snapshotInfo database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
There are 2 user snapshots:
Snapshot ID  User comment     When snapshot occurred
============ ================ ======================
   88412   1                     2018-02-09 13:28:50
   88412   2                     2018-02-10 11:13:55
   88412   3                     2018-02-10 18:39:50
   88412   4                     2018-02-11 08:10:12
   88412   5                     2018-02-12 17:23:46
There are 151 AGGREGATED snapshots:
 Oldest snapshot         2880, 2018-01-04 15:37:29
 Newest snapshot        88412, 2018-02-03 10:00:26
There are 240 NON AGGREGATED snapshots:
  Oldest snapshot        88173, 2018-02-03 08:00:42
  Newest snapshot        88412, 2018-02-03 10:00:26
 
There are about 16.3 MB of metrics stored in ttStats SYS tables
 
  The PollSec was 30
  The RetentionDays was 62
  The RetainMinutes was 120

次の例では、ID 1とID 5のスナップショットの間のレポート(snapreport.txt)を作成しています。

% ttStats -report -snap1 1 -snap2 5 -outputFile snapreport.txt database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
Report snapreport.txt was created.

次の例では、2つのタイムスタンプ間のレポート(timereport.txt)を作成しています。

% ttStats -report -timestamp1 2018-02-22 12:50:31 -timestamp2 2018-02-23 09:15:23 -outputFile snapreport.txt database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
Report timereport.txt was created.

ttStatsレポートによって生成されるメトリックの表の詳細、およびttStatsユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』TimesTen ScaleoutのttStatsを参照してください。