夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          假如 [分區表] 在字段 [createdate] 上進行分區,每個月為一個分區:
          2009年6月為分區P200906
          2009年7月為分區P200907
          2009年8月為分區P200908
          。。。

          執行SQL 使用分區鍵檢索:
          select*from 分區表 t where createdate > to_date('2009-07-12','yyyy-mm-dd') and createdate < to_date('2009-08-12','yyyy-mm-dd')

          執行計劃如下,使用分區鍵進行索引,會自動在數據存在的區進行檢索。因為開始區為2,結束區為3,一目了然。
          SELECT STATEMENT, GOAL = ALL_ROWS
          PARTITION RANGE ITERATOR    Partition start
          =2    Partition stop=3
           
          TABLE ACCESS FULL            Partition start=2    Partition stop=3


          執行SQL 不使用分區鍵檢索:
          select*from 分區表 t where sms_report_date > to_date('2009-07-12','yyyy-mm-dd') and sms_report_date < to_date('2009-08-12','yyyy-mm-dd')

          執行計劃如下:沒有使用分區鍵進行檢索,那么則會查詢全部的表分區。因為要查詢的數據就在2和3分區上,其它的分區數據也被讀取了,增大了數據庫壓力,效率低下。
          SELECT STATEMENT, GOAL = ALL_ROWS
          PARTITION RANGE
          ALL        Partition start=1    Partition stop=31
           
          TABLE ACCESS FULL            Partition start=1    Partition stop=31

          執行SQL 指定使用分區:
          select*from 分區表 partition(P200907) t where sms_report_date > to_date('2009-07-12','yyyy-mm-dd') and sms_report_date < to_date('2009-08-12','yyyy-mm-dd')

          執行計劃如下:
          SELECT STATEMENT, GOAL = ALL_ROWS
          PARTITION RANGE
          SINGLE        Partition start=2    Partition stop=2
           
          TABLE ACCESS FULL            Partition start=2    Partition stop=2
          posted on 2011-06-12 16:03 HUIKK 閱讀(607) 評論(1)  編輯  收藏 所屬分類: DataBase

          評論

          # re: 分區查詢 2014-12-11 11:53 半夏
          很好、通欲易懂。一看就明白  回復  更多評論
            

          主站蜘蛛池模板: 苍南县| 石台县| 治多县| 普洱| 芒康县| 张掖市| 德保县| 乌审旗| 申扎县| 枣阳市| 罗田县| 巴东县| 商城县| 镇原县| 伊宁市| 那曲县| 阳东县| 奉新县| 抚顺县| 泽普县| 礼泉县| 利辛县| 扎赉特旗| 文水县| 抚顺县| 澄城县| 东安县| 卓资县| 溆浦县| 焉耆| 榆林市| 通州市| 西林县| 沙湾县| 慈溪市| 广饶县| 齐河县| 焦作市| 汨罗市| 江陵县| 宜城市|