[間隔分割槽]Oracle10g、11g建立間隔分割槽表
為了簡化資料庫大表的管理,例如在資料倉儲中一般都是TB級的數量級.ORACLE8以後推出了分割槽選項.分割槽將表分離在若於不同的表空間上,用分而治之的方法來支撐元限膨脹的大表,組大表在物理一級的可管理性.將大表分割成較小的分割槽可以改善表的維護、備份、恢復、事務及查詢效能。
分割槽的優點: 1.增強可用性:如果表的一個分割槽由於系統故障而不能使用,表的其餘好的分割槽仍可以使用; 2.減少關閉時間:如果系統故障隻影響表的一部份分割槽,那麼只有這部份分割槽需要修復,礦能比整個大表修復花的時間更少; 3.維護輕鬆:如果需要得建表,獨產管理每個公區比管理單個大表要輕鬆得多; 4.均衡I/O:可以把表的不同分割槽分配到不同的磁碟來平衡I/O改善效能; 5.改善效能:對大表的查詢、增加、修改等操作可以分解到表的不同分割槽來並行執行,可使執行速度更快,在資料倉儲的TP查詢特別有用。 6.分割槽對使用者透明,終端使用者感覺不到分割槽的存在。
在Oracle10g中,沒有定義間隔分割槽,只能透過範圍分割槽實現間隔分割槽功能,如果要實現自動建立分割槽,只能透過建立JOB或者scheduler來實現;而在11g中,Oracle直接提供了間隔分割槽功能,大大簡化了間隔分割槽的實現。
先介紹一下Oracle11g的間隔分割槽功能,主要透過INTERVAL關鍵字來實現,官方參考文件如下:
上述sql語句建立了4個不等區間的分割槽,分別是2008年1月1日之前的所有資料、08年到09年的所有資料、09年上半年的所有資料、09年下半年的所有資料;同時,它也制定了在2010年1月1日之後,每個月單獨建立一個分割槽。需要注意一點,間隔分割槽的鍵值只能是一個列,並且該列只能是Date型別或者number型別。點選(此處)摺疊或開啟
- CREATE TABLE interval_sales
- ( prod_id NUMBER(6)
- , cust_id NUMBER
- , time_id DATE
- , channel_id CHAR(1)
- , promo_id NUMBER(6)
- , quantity_sold NUMBER(3)
- , amount_sold NUMBER(10,2)
- )
- PARTITION BY RANGE (time_id)
- INTERVAL(NUMTOYMINTERVAL(1, \'MONTH\'))
- ( PARTITION p0 VALUES LESS THAN (TO_DATE(\'1-1-2008\', \'DD-MM-YYYY\')),
- PARTITION p1 VALUES LESS THAN (TO_DATE(\'1-1-2009\', \'DD-MM-YYYY\')),
- PARTITION p2 VALUES LESS THAN (TO_DATE(\'1-7-2009\', \'DD-MM-YYYY\')),
- PARTITION p3 VALUES LESS THAN (TO_DATE(\'1-1-2010\', \'DD-MM-YYYY\')) )
下面看一下在Oracle10g下如何實現間隔分割槽功能。
點選(此處)摺疊或開啟
-
SQL> create table HOEGH
-
-
(
-
-
part_id integer primary key,
-
-
part_date date,
-
-
part_dec varchar2(100)
-
-
)
-
-
partition by range(part_date)
-
-
(
-
partition part_01 values less than(to_date(\'2015-01-01\',\'yyyy-mm-dd\')),
-
-
partition part_02 values less than(to_date(\'2015-02-01\',\'yyyy-mm-dd\')) ,
-
-
partition part_03 values less than(to_date(\'2015-03-01\',\'yyyy-mm-dd\')) ,
-
-
partition part_04 values less than(to_date(\'2015-04-01\',\'yyyy-mm-dd\')) ,
-
);
-
-
-
表已建立。
上述sql語句建立了4個不等區間的分割槽,分別是2015年1月1日之前的所有資料、15年1月的所有資料、15年2月
所有資料、15年3月所有資料;如果需要建立之後的分割槽,需要透過alter table語句來實現。
有以上的對比可以看出,Oracle11g自動建立間隔分割槽十分方便;而10g則需要跑指令碼才能實現自動建立分割槽的功能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1572579/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 間隔分割槽Oracle
- 定期truncate 歷史間隔分割槽INTERVAL PARTITION
- Oracle分割槽表增加分割槽報錯“ORA-14760:不允許對間隔分割槽物件執行 ADD PARTITION”Oracle物件
- 建立oracle10g 11g分割槽表Oracle
- 分割槽表及分割槽索引建立示例索引
- oracle10g 11g分割槽表建立舉例Oracle
- Oracle 建立分割槽表Oracle
- 【PARTITION】Oracle11g新特性之間隔分割槽運用說明Oracle
- [引用分割槽表]Oracle 11g新特性之引用分割槽表Oracle
- oracle分割槽表和分割槽表exchangeOracle
- Oracle 分割槽表的建立Oracle
- OceaBase 分割槽表建立技巧
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- ORACLE 11G分割槽表新功能:列表--範圍分割槽Oracle
- 全面學習分割槽表及分割槽索引(6)--建立range-list組合分割槽索引
- Oracle分割槽表及分割槽索引Oracle索引
- INTERVAL分割槽表鎖分割槽操作
- 如何查詢分割槽表的分割槽及子分割槽
- oracle 11g 分割槽表Oracle
- oracle分割槽表和非分割槽表exchangeOracle
- 使用Oracle Database 11g建立Interval分割槽表OracleDatabase
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引
- 深入學習分割槽表及分割槽索引(5)--建立range-hash組合分割槽(續)索引
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引
- PLSQL根據分割槽表的分割槽名批次truncate分割槽SQL
- ORACLE 11g 範圍分割槽錶轉換INTERVAL分割槽表Oracle
- 使用split對分割槽表再分割槽
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- 時間型分割槽欄位不走分割槽的解決
- partition 分割槽表移動到其他表空間
- 批量移動分割槽表到其他表空間
- 分割槽表並行建立索引並行索引
- MySql建立分割槽MySql
- 建立sawp分割槽