在Oracle中,如何有效的删除一个大表(即表的EXTENT数不少)?ide
一个有不少EXTENT(100k+)的表,若是只是简单地用DROP TABLE的话,那么会大量消耗CPU(在DMT管理下,Oracle要对FET$、UET$数据字典进行操做),可能会用上很长的时间,较好的方法是分屡次删除EXTENT,以减轻这种消耗:spa
1. TRUNCATE TABLE BIG_TABLE REUSE STORAGE;blog
2. ALTER TABLE BIG_TABLE DEALLOCATE UNUSED KEEP 2000M ;it
3. ALTER TABLE BIG_TABLE DEALLOCATE UNUSED KEEP 1500M ;class
....方法
4. DROP TABLE BIG_TABLE;im