來源:互聯網 2008-06-01 03:23:13
評論測試環境:Hp rp7410主機,Hp-unix11.11 OS,Oracle8.1.7.4的數據庫,一個有90張表大約100G的測試表空間TBS_TEST.
問題:Oracle中在使用drop tablespace including contents;刪除數據字典管理的表空間時存在著很大的效率問題。
測試開始:
1、使用drop tablespace including contents;方式直接來刪除
SQL>set linesize 132
SQL>set pagezie 0
SQL>set timing on
SQL>drop tablespace TBS_TEST including contents
2 /
已用時間: 03: 35: 39.10
等待時間:三個半小時。
2、測一下同樣的表空間,把它轉換爲Local方式管理的刪除效率
a、把TBS_TEST通過恢複回來。
b、把TBS_TEST轉化爲Local管理的方式。
SQL>set timing on
SQL> exec sys.dbms_space_admin.
tablespace_migrate_to_local(?TBS_TEST?) ;
已用時間: 00: 06: 33.25c、刪出這個空間。
SQL> drop tablespace TBS_TEST including contents
2 /
已用時間: 00: 00: 45.56
可以看到總共才花費了7分多鍾。
3、測一下同樣的表空間,先刪除其中的對象,然後再刪這個表空間的效率如何
a、把TBS_TEST通過恢複回來。
b、形成刪除表的語句。
SQL>set linesize 132
SQL>set pagezie 0
SQL>set timing off
SQL>spool drop_test_tables.sql
SQL>SELECT ?Drop table ?||TABLE_name||?;?
FROM dba_tables WHERE tablespace_name=?TBS_TEST?;
SQL>spool
測試環境:Hp rp7410主機,Hp-unix11.11 OS,Oracle8.1.7.4的數據庫,一個有90張表大約100G的測試表空間TBS_TEST.
問題:Oracle中在使用drop tablespace including contents;刪除數據字典管理的表空間時存在著很大的效率問題。
測試開始:
1、使用drop tablespace including contents;方式直接來刪除
SQL>set linesize 132
SQL>set pagezie 0
SQL>set timing on
SQL>drop tablespace TBS_TEST including contents
2 /
已用時間: 03: 35: 39.10
等待時間:三個半小時。
2、測一下同樣的表空間,把它轉換爲Local方式管理的刪除效率
a、把TBS_TEST通過恢複回來。
b、把TBS_TEST轉化爲Local管理的方式。
SQL>set timing on
SQL> exec sys.dbms_space_admin.
tablespace_migrate_to_local(?TBS_TEST?) ;
已用時間: 00: 06: 33.25c、刪出這個空間。
SQL> drop tablespace TBS_TEST including contents
2 /
已用時間: 00: 00: 45.56
可以看到總共才花費了7分多鍾。
3、測一下同樣的表空間,先刪除其中的對象,然後再刪這個表空間的效率如何
a、把TBS_TEST通過恢複回來。
b、形成刪除表的語句。
SQL>set linesize 132
SQL>set pagezie 0
SQL>set timing off
SQL>spool drop_test_tables.sql
SQL>SELECT ?Drop table ?||TABLE_name||?;?
FROM dba_tables WHERE tablespace_name=?TBS_TEST?;
SQL>spool