oracle中將字典管理表空間轉換為本地管理表空間

          首先要知道本地管理表空間和字典管理表空間的區(qū)別。
          字典管理表空間每當表或其他對象需要擴大的時候都檢查其數據字典以確保有可用的空間分配給對象,然后給對象分配一個新區(qū)段并更新其可用空間信息。
          本地管理表空間保存數據文件本身的空間管理信息,而且表空間自動跟蹤每個數據文件塊的可用或已用狀態(tài)。
          在事務比較多的數據庫中顯然字典管理每次插入數據時都會檢查數據字典,這就使得數據庫性能有所損耗。

          轉換:
          第一種方法---命令方式轉移。
          首先你要新建一個oracle表空間,在oracle 10g以后默認都是采用本地管理表空間的。
          對于表空間的轉移使用命令
          ALTER TABLE temp MOVE TABLESPACE new_temp;
          對于索引你需要重建
          ALTER TABLE index REBUILD TABLESPACE new_index;

          或許你可以采用oracle提供的PL/SQL數據包中的DBMS_SPACE_ADMIN。
          顯然上面的方法并不適用于對system表進行轉換,因為你不能建立2個同名的system表。
          在轉換system表前,你必須把所有的其他表空間轉換為本地管理。
          EXECUTE dbms_space_admin.tablespace_migrate_to_local("tablespace"); ---轉行表空間
          然后同樣的方法將system表空間也進行轉換.
          EXECUTE dbms_space_admin.tablespace_migrate_to_local("system");
          使用這種方法很好,但是它建立的表空間沒有automatic segment space managerment選項,所有字典管理表空間都是用默認手動段空間管理,而且在轉換為本地管理的表空間是不能進行修改.
          還有一個缺點,就是表空間如果存在空間碎片的話,此方法也不能解決碎片問題.
          所以oracle建議你,采用第一種方法.


          posted on 2009-08-01 08:12 duduli 閱讀(1480) 評論(1)  編輯  收藏 所屬分類: 數據庫

          評論

          # re: oracle中將字典管理表空間轉換為本地管理表空間 2009-08-01 11:07 99讀書人

          不錯!  回復  更多評論   

          <2009年8月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統(tǒng)計

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 明水县| 临洮县| 孙吴县| 邓州市| 通化市| 通江县| 辽源市| 安远县| 湾仔区| 正宁县| 手机| 秀山| 滦平县| 鄂温| 阿勒泰市| 宣城市| 北川| 筠连县| 礼泉县| 康马县| 万盛区| 淳安县| 简阳市| 四子王旗| 莫力| 赣榆县| 曲水县| 开封县| 新竹市| 丽水市| 皮山县| 伊春市| 武平县| 邻水| 阿图什市| 介休市| 汽车| 枣强县| 平潭县| 江阴市| 淳安县|