waterye

          使用SQL*Plus copy command復制數據

          當生產庫的歷史數據很大時會導致信息系統很慢, 將歷史數據轉移到歷史庫, 也許這不算好的解決方法, 但對生產庫的性能將有所提高

          1. 建立歷史數據庫(historydb)
          2. 使用SQL*Plus copy command復制數據到歷史數據庫 (參考: http://www.itpub.net/225749.html)  
           基本表用append方式:  copy from user/pwd@db to user/pwd@historydb replace product using select * from product;
           業務表用replace方式: copy from user/pwd@db to user/pwd@historydb append sale_order using select * from sale_order;
          3. 從生產庫中刪除業務數據


          優點: 速度較快
          缺點: 業務數據如果進行重復append時將出錯(primary key), 生產庫和歷史庫的表結構必須相同

          note: 可以在歷史庫上執行Copy Command,也可以在生產庫上執行Copy Command,但不要在第三臺機器上執行Copy Command,原因很簡單,Copy Command的執行機制是通過SQL*Net來轉移數據,如果是在第三臺機器上執行的話,相當于數據繞了一大段彎路才進入歷史庫,自然會影響效率。


          sqlplus /nolog @move.sql

          move.sql

          conn user/pwd@db
          set arraysize 5000 -- 加快速度
          copy from user/pwd@db to user/pwd@historydb replace product using select * from product; 
          -- 
          copy from user/pwd@db to user/pwd@historydb append sale_order using select * from sale_order s where s.order_date >= add_months(sysdate, -5and s.order_date < add_months(sysdate, -3);
          delete from sale_order s 
           
          where s.order_date >= add_months(sysdate, -5)
             
          and s.order_date < add_months(sysdate, -3);
          commit;
          exit

          posted on 2005-12-14 10:30 waterye 閱讀(665) 評論(0)  編輯  收藏 所屬分類: oracle

          主站蜘蛛池模板: 武城县| 台中市| 原阳县| 万山特区| 巨鹿县| 榆林市| 郓城县| 凤冈县| 安丘市| 威海市| 邻水| 从江县| 彭水| 岫岩| 左云县| 双辽市| 崇仁县| 汪清县| 北川| 马龙县| 山东省| 双鸭山市| 蚌埠市| 德令哈市| 犍为县| 涟水县| 太保市| 尤溪县| 格尔木市| 永修县| 稻城县| 宁安市| 什邡市| 健康| 连云港市| 田东县| 长顺县| 苍溪县| 德格县| 年辖:市辖区| 千阳县|