【DB筆試面試234】在Oracle中,如何有效的刪除一個大表(即表的EXTENT數不少)?

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=


Q          題目以下所示:

在Oracle中,如何有效的刪除一個大表(即表的EXTENT數不少)?ide


     
A          答案以下所示:          



一個有不少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

相關文章
相關標籤/搜索