block 中 AVG_SPACE 的意义
在 hwm 很高的情况下,AVG_SPACE 越大意味着 block 中 free space 越大,这时
候如果表很大的话,这里表大一方面是指 num_rows 很大,另一方 AVG_ROW_LEN
也很大。AVG_SPACE 如果大到一定程度(当然这个度自己根据和 block_size 相
比较把握)想办法 shrink 一下这个表,降低 hwm 的同时降低 AVG_SPACE...从而
提高性能和空间利用率。
SQL> create table t tablespace users as select * from dba_objects;
表已创建。
SQL> insert into t select * from t;
已创建 11319 行。
SQL>
SQL> insert into t select * from t;
已创建 22638 行。
SQL> commit;
提交完成。
SQL> exec dbms_stats.gather_table_stats('SYS','T');
PL/SQL 过程已成功完成。
SQL> select blocks,num_rows,empty_blocks,AVG_SPACE,AVG_ROW_LEN from
user_tables
where table_name='T';
BLOCKS NUM_ROWS EMPTY_BLOCKS AVG_SPACE AVG_ROW_LEN
---------- ---------- ------------ ---------- -----------
634 45276 0 0 85
SQL> delete from t where object_id<1000;
已删除 3812 行。
SQL> commit;
SQL> analyze table t compute statistics;