如何在Oracle DB中检查表碎片?
#oracle #database #性能 #optimization

在Oracle DB中检查表片段,运行以下SQL命令:

select 
    table_name,
    avg_row_len,
    round(((blocks*16/1024)),2)||'MB' "TOTAL_SIZE",
    round((num_rows*avg_row_len/1024/1024),2)||'Mb' "ACTUAL_SIZE",
    round(((blocks*16/1024)-(num_rows*avg_row_len/1024/1024)),2) ||'MB' "FRAGMENTED_SPACE",
    (round(((blocks*16/1024)-(num_rows*avg_row_len/1024/1024)),2)/round(((blocks*16/1024)),2))*100 "percentage"
from 
    all_tables 
where
  round(( (blocks*16/1024) ),2) > 0
order by 6 desc;