断片化した自動リフレッシュの変更ログ表領域

たとえば、TimesTenのシャットダウン時に変更ログが構築された結果として最高水位標が発生すると、変更ログ表は断片化される場合があります。変更ログ表が断片化された場合、次の操作を実行できます。

  • 索引を結合します。これは、実表へのDMLの変更に影響を与えずに行うことができます。

  • オンラインでセグメントの縮小を行います。これは、実表へのDMLの変更に影響を与えずに行うことができます。

  • 変更ログ表を再構築します。

無駄な領域がないか確認します。

  1. Oracle DatabaseにcacheInfo.sqlスクリプトを実行して、変更ログ表の名前を確認します。

  2. 変更ログ表のサイズを計算します。結果Aをコールします。この例では、変更ログ表の名前を適合させます。

    SELECT table_name, ROUND((BLOCKS*8),2)||'KB' "size" 
     FROM user_tables
     WHERE table_name LIKE 'TT_05_%_L";
    
  3. 変更ログ表のデータのサイズを計算します。結果Bをコールします。この例では、変更ログ表の名前を適合させます。

    SELECT table_name, ROUND((num_rows*avg_row_length/1024),2)|| 'KB' "size"
     FROM user_tables
     WHERE table_name LIKE 'TT_05_%_L';
    
  4. (B/A)*100が50パーセントより大きい場合、少なくとも40パーセントの領域が無駄になっています(PCTFREEストレージ・パラメータが10に設定されていると仮定)。少なくとも40パーセントの領域が無駄になっている場合、変更ログ表の断片化が推奨されます。

変更ログ表を断片化するには、次のステップを実行します。

  1. 自動リフレッシュの状態をPAUSEDに設定するようキャッシュ・グループを変更します。
  2. 変更ログ表の行を一時表にコピーします。
  3. 変更ログ表を切り捨てます。
  4. 一時表から変更ログ表に行を挿入します。
  5. 自動リフレッシュの状態をONに設定するようキャッシュ・グループを変更します。

この表領域の管理の詳細は、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』「キャッシュ管理ユーザーの表領域の管理」を参照してください。