Oracle資料庫快速Drop 大表
一、流程簡介
1、先不直接使用Drop table命令,取而帶之用帶有REUSE STORAGE子句的Tuncate table命令。因為沒有Extents要被回收,Trunate table命令執行很快,只是段的highwater mark簡單的被調整到段頭的block上。
2、使用帶有KEEP子句的alter table命令逐漸的回收表的Extents,以減輕對Cpu的壓力。
二、舉例說明
假定有一個表名字為BIGTAB,系統的cpu資源很有限,根據過去的經驗drop這樣的一張表要花掉數天的時間。如下的操作就可以在不大量耗用cpu的情形下很有效的Drop這張大表。
1. Truncate table, 使用REUSE STORAGE子句:
SQL> TRUNCATE TABLE BIGTAB REUSE STORAGE;
2. 如果要花費3天(72小時) 去drop這張表,可以把時間分散到6個晚上,每個晚上drop 1/3Gb資料.
Night 1:
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 1707M; (2Gb*5/6)
Night 2:
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 1365M; (2Gb*4/6)
Night 3:
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 1024M; (2Gb*3/6)
Night 4:
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 683M; (2Gb*2/6)
Night 5:
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 341M; (2Gb*1/6)
Night 6:
SQL> DROP TABLE BIGTAB;
同樣的方法也對LOB段適用:
SQL>purge recyclebin;
SQL> ALTER TABLE
DEALLOCATE UNUSED KEEP
三、其它需要注意的地方
1、如果你不注意的已經執行了drop操作,那這種方法就不能再使用了,因為Drop table操作會首先把表段轉化成臨時段,然後開始清理臨時段中的extents,即使Drop操作被中斷了,Smon會接後使用者程式繼續執行臨時段的清理工作。
2、這種方法只適合表段。
轉自:http://www.cnblogs.com/chuanzifan/archive/2012/05/12/2496952.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26477398/viewspace-1320655/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快速drop mysql大表MySql
- 故障分析 | DROP 大表造成資料庫假死資料庫
- ZT:處理Oracle資料庫中一張有效的Drop大表Oracle資料庫
- GreatSQL資料庫DROP表後無法重建SQL資料庫
- Oracle大表快速建立索引Oracle索引
- oracle快速定位資料庫瓶頸Oracle資料庫
- oracle 誤刪表 drop tableOracle
- Oracle資料庫表碎片整理Oracle資料庫
- oracle資料庫兩表資料比較Oracle資料庫
- ORACLE資料庫裡表匯入SQL Server資料庫Oracle資料庫SQLServer
- oracle資料庫巡檢優化-快速定位資料庫瓶頸Oracle資料庫優化
- Oracle Drop表(purge)恢復(ODU)Oracle
- 資料庫:drop、truncate、delete的區別資料庫delete
- Oracle 資料庫整理表碎片Oracle資料庫
- Oracle資料庫開發——表(概念)Oracle資料庫
- oracle清除資料庫表空間Oracle資料庫
- 修改Oracle資料庫表的大小Oracle資料庫
- 大資料資料庫讀寫分離分庫分表大資料資料庫
- 11g資料庫大表資料快速清理方法 - insert+append+parallel+exchange (2)資料庫APPParallel
- 11g資料庫大表資料快速清理方法 - insert+append+parallel+exchange (1)資料庫APPParallel
- Oracle資料庫管理——表資料庫高水位及shrink操作Oracle資料庫
- 【Flashback】使用Flashback Drop技術閃回被DROP表的指定版本資料
- oracle資料庫巡檢優化-快速定位資料庫瓶頸(轉)Oracle資料庫優化
- oracle資料庫巡檢最佳化-快速定位資料庫瓶頸Oracle資料庫
- Oracle 如何快速的 duplicate 一個資料庫Oracle資料庫
- MySQL Drop 大表的解決方案MySql
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 恢復oracle中drop掉的表Oracle
- oracle誤drop/update資料恢復測試Oracle資料恢復
- Oracle 資料庫字典 檢視 基表Oracle資料庫
- Oracle資料庫開發——臨時表Oracle資料庫
- Oracle批量建立、刪除資料庫表Oracle資料庫
- 資料庫表——EXPERT ONE-ON-ONE ORACLE資料庫Oracle
- Agile PLM資料庫表結構(Oracle)資料庫Oracle
- sql 資料庫 龐大資料量 需要分表SQL資料庫大資料
- oracle資料庫用sql實現快速分頁Oracle資料庫SQL
- oracle資料庫災難挽救應急方案之DDL誤操作恢復(drop)Oracle資料庫
- oracle資料庫事物四大特性Oracle資料庫