1.显示所有剩余空间小于10%的表
这里要注意的是,blocks和empty_blocks是只有通过dbms_stats.gather_table_stat收集后才能得到最准确的值。
SQL> SELECT owner, table_name, blocks, empty_blocks
2 FROM dba_tables
2 FROM dba_tables
3 WHERE empty_blocks/(blocks+empty_blocks) < .1;
OWNER TABLE_NAME BLOCKS EMPTY_BLOCKS
------ ---------- ---------- ------------
HR EMPLOYEES 1450 50
HR COUNTRIES 460 40
2.要避免动态分配,根据上面的结果,执行下面的语句
SQL> ALTER TABLE hr.employees ALLOCATE EXTENT;
Table altered.
3.这个办法也可以用于index/cluster