在Oracle中,如何有效的删除一个大表(即表的EXTENT数很多)?
一个有很多EXTENT(100k+)的表,如果只是简单地用DROP TABLE的话,那么会大量消耗CPU(在DMT管理下,Oracle要对FET$、UET$数据字典进行操作),可能会用上很长的时间,较好的方法是分多次删除EXTENT,以减轻这种消耗:
1. TRUNCATE TABLE BIG_TABLE REUSE STORAGE;
2. ALTER TABLE BIG_TABLE DEALLOCATE UNUSED KEEP 2000M ;
3. ALTER TABLE BIG_TABLE DEALLOCATE UNUSED KEEP 1500M ;
....
4. DROP TABLE BIG_TABLE;
& 说明:
有关删除大表的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2141248/
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




