tech_memo / ORACLE / HWM


tech_memo/ORACLE

High Water Mark

HWM確認方法その1

   variable total_blocks   number
   variable total_bytes    number
   variable unused_blocks  number
   variable unused_bytes   number
   variable last_used_extent_file_id number
   variable last_used_extent_block_id number
   variable last_used_block number

   exec dbms_space.unused_space('$DB_USER', '$TAB_NAME', 'TABLE', :total_blocks, :total_bytes, :unused_blocks, :unused_bytes, :last_used_extent_file_id, :last_used_extent_block_id, :last_used_block);

   print

HWM確認方法その2

  • 参考 : http://qiita.com/sowd/items/755b5a7582cc69259706
  • その1は非推奨になっている?
  • USER_TABLESは統計情報を取得したときの値が入っているので、正確な値を取りたい場合は、最初に統計情報を取得すること。
    SELECT 
      S.BLOCKS "確保済み", T.BLOCKS "HWM" 
    FROM 
      USER_TABLES T JOIN USER_SEGMENTS S 
    ON 
      (T.TABLE_NAME=S.SEGMENT_NAME) 
    WHERE 
      T.TABLE_NAME='テーブル名';