高水位的表處理辦法
最近維護的數據庫查詢十分忙,由於年代久遠估計是高水位造成,於是用以下語句找出高水位的表。
查看高水位的語句,其實高水位就是分配給表的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之後記得重建索引,不如索引會失效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.