ZT:處理Oracle資料庫中一張有效的Drop大表
好像這個文章涉及的表空間是本地管理的表空間。
本文中透過詳細步驟來講解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> ALTER TABLE
DEALLOCATE UNUSED KEEP
三、其它需要注意的地方
1、如果你不注意的已經執行了drop操作,那這種方法就不能再使用了,因為Drop table操作會首先把表段轉化成臨時段,然後開始清理臨時段中的extents,即使Drop操作被中斷了,Smon會接後使用者程式繼續執行臨時段的清理工作。
2、這種方法只適合表段。
好像
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-83052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 故障分析 | DROP 大表造成資料庫假死資料庫
- mysql,sqlserver資料庫單表資料過大的處理方式MySqlServer資料庫
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- Oracle資料庫中的逐行處理問題NEOracle資料庫
- GreatSQL資料庫DROP表後無法重建SQL資料庫
- 一次ORACLE資料庫undo壞塊處理Oracle資料庫
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- DBus資料庫表結構變更處理方案資料庫
- oracle遊標批次處理資料Oracle
- Oracle資料庫表碎片整理Oracle資料庫
- [資料庫][分庫分表]分庫分表之後,id主鍵如何處理資料庫
- 大資料處理的基本流程大資料
- Oracle資料庫處理壞塊問題常用命令Oracle資料庫
- 資料庫:drop、truncate、delete的區別資料庫delete
- oracle系統表空間過大問題處理Oracle
- java大資料處理:如何使用Java技術實現高效的大資料處理Java大資料
- 剖析大資料平臺的資料處理大資料
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- Oracle資料庫出現ORA-19566 LOB壞塊的處理記錄Oracle資料庫
- 銀河麒麟系統安裝ORACLE資料庫問題處理Oracle資料庫
- Oracle 資料庫整理表碎片Oracle資料庫
- 大資料常用處理框架大資料框架
- 常見的wait等待事件及處理(zt)AI事件
- 資料庫表中一對多關係怎麼設計?資料庫
- Polars提供Javascript的資料處理庫 - levelupJavaScript
- 資料庫的基本資訊,都在這幾張表裡了資料庫
- Oracle資料庫管理——表資料庫高水位及shrink操作Oracle資料庫
- 資料庫故障處理優質文章彙總(含Oracle、MySQL、MogDB等)資料庫OracleMySql
- SYBASE資料庫dbcc命令詳解(zt)資料庫
- Agile PLM資料庫表結構(Oracle)資料庫Oracle
- 記一次 MySQL 資料庫單表恢復事故處理MySql資料庫
- MySQL資料庫INNODB表損壞修復處理過程分享MySql資料庫
- 資料預處理之 pandas 讀表
- JavaScript 資料處理 - 對映表篇JavaScript
- oracle資料庫災難挽救應急方案之DDL誤操作恢復(drop)Oracle資料庫
- oracle enqueue(zt)OracleENQ
- mybatis+oracle 批次插入多條資料的處理方法MyBatisOracle
- 傳統的資料處理方式能否應對大資料?大資料