oracle碎片整理方法
採用兩種方法:exp imp 和 SQL指令碼整理
[@more@]---- 我們知道,段由範圍組成。在有些情況下,有必要對段的碎片進行整理。要檢視段的有關資訊,可檢視資料字典 dba_segments ,範圍的資訊可檢視資料字典 dba_extents 。如果段的碎片過多, 將其資料壓縮到一個範圍的最簡單方法便是用正確的儲存引數將這個段重建,然後將舊錶中的資料插入到新表,同時刪除舊錶。這個過程可以用 Import/Export (輸入 / 輸出)工具來完成。
---- Export ()命令有一個(壓縮)標誌,這個標誌在讀表時會引發 Export 確定該表所分配的物理空間量,它會向輸出轉儲檔案寫入一個新的初始化儲存引數 -- 等於全部所分配空間。若這個表關閉, 則使用 Import ()工具重新生成。這樣,它的資料會放入一個新的、較大的初始段中。例如:
exp user/password file=exp.dmp compress=Y grants=Y indexes=Y
tables=(table1,table2);
---- 若輸出成功,則從庫中刪除已輸出的表,然後從輸出轉儲檔案中輸入表:
imp user/password file=exp.dmp commit=Y buffer=64000 full=Y
---- 這種方法可用於整個資料庫。
---- 我們知道,段由範圍組成。在有些情況下,有必要對段的碎片進行整理。要檢視段的有關資訊,可檢視資料字典 dba_segments ,範圍的資訊可檢視資料字典 dba_extents 。如果段的碎片過多, 將其資料壓縮到一個範圍的最簡單方法便是用正確的儲存引數將這個段重建,然後將舊錶中的資料插入到新表,同時刪除舊錶。這個過程可以用 Import/Export (輸入 / 輸出)工具來完成。
---- Export ()命令有一個(壓縮)標誌,這個標誌在讀表時會引發 Export 確定該表所分配的物理空間量,它會向輸出轉儲檔案寫入一個新的初始化儲存引數 -- 等於全部所分配空間。若這個表關閉, 則使用 Import ()工具重新生成。這樣,它的資料會放入一個新的、較大的初始段中。例如:
exp user/password file=exp.dmp compress=Y grants=Y indexes=Y
tables=(table1,table2);
---- 若輸出成功,則從庫中刪除已輸出的表,然後從輸出轉儲檔案中輸入表:
imp user/password file=exp.dmp commit=Y buffer=64000 full=Y
---- 這種方法可用於整個資料庫。
tmp_val VARCHAR2 (500);
BEGIN
--1.整理空間碎片;
FOR REC IN (SELECT TABLE_NAME FROM USER_TABLES )
LOOP
tmp_val:='ALTER TABLE '||REC.TABLE_NAME ||' MOVE';
BEGIN
EXECUTE IMMEDIATE tmp_val;
DBMS_OUTPUT.put_line (tmp_val);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Error: ' || tmp_val || '!');
END;
END LOOP;
--2.把索引重建(碎片整理後,很多索引會變成UNUSABLE狀態,必須重建後,讓它變成void狀態)
FOR REC IN (SELECT INDEX_NAME FROM USER_INDEXES ) --WHERE STATUS='UNUSABLE'
LOOP
tmp_val:='ALTER INDEX '||REC.INDEX_NAME ||' REBUILD';
BEGIN
EXECUTE IMMEDIATE tmp_val;
DBMS_OUTPUT.put_line (tmp_val);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Error: ' || tmp_val || '!');
END;
END LOOP;
END;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/143526/viewspace-978045/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料表碎片整理Oracle
- Oracle資料庫表碎片整理Oracle資料庫
- Oracle 資料庫整理表碎片Oracle資料庫
- 索引碎片整理索引
- MySQL表碎片整理MySql
- win10系統無法整理磁碟碎片提示已由其它程式建立了計劃磁碟碎片整理的解決方法Win10
- mysql之 OPTIMIZE TABLE整理碎片MySql
- 驗證Oracle 10g線上整理碎片索引是否失效過程Oracle 10g索引
- Oracle 20c 新特性:Online SecureFiles Defragmentation 線上的 LOB 碎片整理OracleFragment
- win10怎麼禁用磁碟整理_win10關閉磁碟碎片整理的方法Win10
- windows10系統磁碟碎片整理在哪 win10如何開啟磁碟碎片整理WindowsWin10
- Sqlserver的表沒有高水位但是有碎片的概念,sqlserver表的碎片的檢視和整理方法SQLServer
- 硬碟加速和磁碟碎片整理軟體硬碟
- MySQL碎片整理小節--例項演示MySql
- java/android 做題中整理的碎片小貼士(4)JavaAndroid
- Oracle Database Scheduler整理OracleDatabase
- win10系統如何關閉磁碟碎片整理計劃Win10
- oracle表空間的整理Oracle
- Oracle 常用運維命令整理Oracle運維
- 利用姑姑印表機,說說碎片化知識整理的那些事兒
- Win10系統怎麼清理磁碟碎片 win10系統清理磁碟碎片的方法Win10
- 字串碎片字串
- jQuery碎片jQuery
- 常用JS方法整理JS
- js常用方法整理JS
- 整理幾個方法
- Win10系統下不能使用碎片整理沒反應如何解決Win10
- 碎片化敘事的文案撰寫原則與方法
- 對oracle分割槽表的理解整理Oracle
- Oracle 選擇題知識點整理Oracle
- ORACLE常見檢視和表整理Oracle
- Masonry 使用方法整理
- Js方法整理自用(未完)JS
- defrag" 命令的幫助資訊,該命令用於對磁碟進行碎片整理操作
- 碎片化的學習需要整理、沉澱,記錄到部落格是最好的方式!
- Oracle 獲取整數方式程式碼整理Oracle
- 【EBS】Oracle EBS 之 OM 模組整理(1)Oracle
- Oracle 元件資訊獲取途徑整理Oracle元件
- 原生js的常用方法整理JS