高水位的表處理辦法

最近維護的數據庫查詢十分忙,由於年代久遠估計是高水位造成,於是用以下語句找出高水位的表。

查看高水位的語句,其實高水位就是分配給表的blocks
select owner,
       table_name 表名,
       trunc((num_rows * avg_row_len / 1024 / 8), 0) 使用的數據塊,
       blocks 高水位線,
       trunc((num_rows * avg_row_len / 1024 / 8 / blocks), 2) as 數據所佔比例
  from dba_tables
 where blocks is not null
   and (num_rows * avg_row_len / 1024 / 8 / blocks) < 0.5
   and blocks > 10000;

高水位不會通過表分析下降,表分析只不過是爲了更加精確地顯示出高水位。

要處理高水位的表,比較傳統的辦法是move來move去,當然還可以shrink,不過效果沒有move徹底。

alter table table_name move

move之後記得重建索引,不如索引會失效。
發佈了33 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章