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
- ORACLE碎片整理一(轉載)Oracle
- ORACLE碎片整理二(轉載)Oracle
- Oracle 資料庫碎片整理Oracle資料庫
- Oracle資料庫碎片整理Oracle資料庫
- Oracle資料庫表碎片整理Oracle資料庫
- ORACLE表空間的碎片整理Oracle
- Oracle 資料庫碎片整理(zt)Oracle資料庫
- Oracle資料庫碎片整理(轉)Oracle資料庫
- Oracle 資料庫整理表碎片Oracle資料庫
- oracle表碎片以及整理(高水位線)Oracle
- MySQL表碎片整理MySql
- MysqL碎片整理優化MySql優化
- Oracle 整理表碎片、釋放表的空間Oracle
- win10系統無法整理磁碟碎片提示已由其它程式建立了計劃磁碟碎片整理的解決方法Win10
- mysql之 OPTIMIZE TABLE整理碎片MySql
- windows10系統磁碟碎片整理在哪 win10如何開啟磁碟碎片整理WindowsWin10
- win10怎麼禁用磁碟整理_win10關閉磁碟碎片整理的方法Win10
- Oracle 表碎片Oracle
- oracle碎片清理Oracle
- 驗證Oracle 10g線上整理碎片索引是否失效過程Oracle 10g索引
- 硬碟加速和磁碟碎片整理軟體硬碟
- MySQL碎片整理小節--例項演示MySql
- MySQL的 data_free,表碎片整理MySql
- MySQL資料碎片的整理和分析MySql
- Sqlserver的表沒有高水位但是有碎片的概念,sqlserver表的碎片的檢視和整理方法SQLServer
- ORACLE碎片問題Oracle
- Oracle 20c 新特性:Online SecureFiles Defragmentation 線上的 LOB 碎片整理OracleFragment
- 為什麼Linux不需要碎片整理?Linux
- 教你用Ghost整理系統磁碟碎片(轉)
- oracle 物化檢視重新整理方法Oracle
- java/android 做題中整理的碎片小貼士(4)JavaAndroid
- win10系統如何關閉磁碟碎片整理計劃Win10
- MySQL關於表碎片整理OPTIMIZE TABLE操作的官方建議MySql
- oracle 物化檢視的自動重新整理方法Oracle
- oracle 表碎片太多的處理辦法Oracle