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

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

          轉換:
          第一種方法---命令方式轉移。
          首先你要新建一個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

          導航

          統計

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 临海市| 高平市| 和林格尔县| 高雄市| 新和县| 剑川县| 沭阳县| 九寨沟县| 峨山| 泰宁县| 浦江县| 浮梁县| 长沙县| 布拖县| 安国市| 江西省| 周宁县| 蚌埠市| 安泽县| 长治市| 镇原县| 汝城县| 会昌县| 兴隆县| 永胜县| 桐庐县| 崇信县| 杭锦后旗| 城固县| 长汀县| 天全县| 香河县| 赤壁市| 霸州市| 伊春市| 平邑县| 梅河口市| 潞城市| 泰来县| 望江县| 大冶市|