隨筆-144  評論-80  文章-1  trackbacks-0

          我的測試環(huán)境:Hp rp7410主機,Hp-unix11.11 OS,Oracle8.1.7.4的數(shù)據(jù)庫,一個有90張表大約100G的測試表空間TBS_TEST.

          問題的提出:Oracle中在使用drop tablespace <tablespace_name> including contents;刪除數(shù)據(jù)字典管理的表空間時存在著很大的效率問題。

          測試開始:

          1、使用drop tablespace <tablespace_name> 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

          經(jīng)過我耐心的等待,花了三個半小時。 

          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.25

          c、刪出這個空間。

          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 off

          c、刪除表
          SQL>@drop_test_tables.sql

          這一步大約花費20秒

          d、刪出這個空間。

          SQL>set timing on
          SQL> drop tablespace TBS_TEST including contents;

          已用時間:  00: 07: 35.53
           
          可以看到總共才花費了將近8分鐘。


          總結:我們在做數(shù)據(jù)字典管理的表空間的刪除時,最好先刪除表空間中的對象再進行刪除該表空間操作。也可以先把它轉換為本地(local)管理的空間再進行刪除。不過需要補充的是本地管理的空間在8i以后的版本中才是有的。

          作者Blog:http://blog.csdn.net/hrb_qiuyb/

          posted on 2005-04-11 13:27 小力力力 閱讀(253) 評論(0)  編輯  收藏 所屬分類: ORACLE
          主站蜘蛛池模板: 贵溪市| 涞源县| 连江县| 达日县| 璧山县| 皋兰县| 德钦县| 乌拉特前旗| 陇西县| 大同市| 浦城县| 德州市| 柘城县| 庆元县| 全南县| 洞头县| 山东| 吉林市| 怀宁县| 阳高县| 库车县| 宁南县| 中江县| 新昌县| 罗平县| 寿光市| 高阳县| 邻水| 芜湖县| 桂林市| 怀仁县| 鲁山县| 贡嘎县| 井陉县| 五大连池市| 大厂| 吉林市| 吴江市| 建瓯市| 辉县市| 栾川县|