oracle組合分區(qū)
在陽江等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、網(wǎng)站建設 網(wǎng)站設計制作按需求定制制作,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,營銷型網(wǎng)站,成都外貿網(wǎng)站建設公司,陽江網(wǎng)站建設費用合理。
由于Interval分區(qū)是針對range的,11g-12.1版本,目前只有Interval—*一共3種Interval的復合分區(qū)
range-list方法:
partition by range (updatetime)
interval (numtodsinterval(1,'day'))
subpartition by list(PSNCODE)
SUBPARTITION TEMPLATE(
SUBPARTITION REGION_1 values('038716'),
SUBPARTITION REGION_2 values('270719') )
(partition p1 values less than(to_date('2014-05-01','yyyy-mm-dd')))
注意:每個分區(qū)有2個子分區(qū),分區(qū)的子分區(qū)需要手動添加
Interval分區(qū)目前測試,只支持range先分區(qū)的方式
range-hash方法:每個分區(qū)10個子hash分區(qū)(可以指定每個子分區(qū)到單獨的表空間)
partition by range (updatetime)
interval(numtodsinterval(1,'day'))
subpartition by hash(PSNCODE)
SUBPARTITION template
( SUBPARTITION p1 TABLESPACE ts1
, SUBPARTITION p2 TABLESPACE ts2
, SUBPARTITION p3 TABLESPACE ts3
, SUBPARTITION P4 TABLESPACE ts4
)
(partition p1 values less than(to_date('2014-05-01','yyyy-mm-dd')))
注意:這種方式可以實現(xiàn)完全自動的分區(qū),非常適合自增長特性的10位數(shù)以上的大表
hash分區(qū)最好是2的次方個,不然數(shù)據(jù)會分布不均
range-range方法:子分區(qū)需要手動添加,這種分區(qū)需要一般比較少見
PARTITION BY RANGE (time_id)
INTERVAL (NUMTODSINTERVAL(1,'DAY'))
SUBPARTITION BY RANGE(amount_sold)
SUBPARTITION TEMPLATE
( SUBPARTITION p_low VALUES LESS THAN (1000)
, SUBPARTITION p_medium VALUES LESS THAN (4000)
, SUBPARTITION p_high VALUES LESS THAN (8000)
, SUBPARTITION p_ultimate VALUES LESS THAN (maxvalue)
)
(PARTITION before_2000 VALUES LESS THAN (TO_DATE('01-JAN-2000','dd-MON-yyyy')) )
首先,里邊有數(shù)據(jù)不太好辦,不過可以這樣
create table T_BUSINESS_MONITOR_TMP as select * from T_BUSINESS_MONITOR;
然后,把原表清空
truncate table T_BUSINESS_MONITOR;
然后加上分區(qū)
alter table T_BUSINESS_MONITOR add partition p201301 VALUES LESS THAN (TO_DATE(' 2013-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') tablespace 表空間名;
看好了,前邊的分區(qū)名是201301,后邊的to_date的日期是20130201,不要弄錯了,當然,這個可以指定使用的表空間,
這樣的話,你要按照此語句建12個分區(qū),最后一個就應該是名字為p201312 ,時間就是2014-01-01,
然后,把你之前的表的數(shù)據(jù)弄過來
insert into T_BUSINESS_MONITOR select * from T_BUSINESS_MONITOR_TMP;
commit;
最后把備份表刪除
drop table T_BUSINESS_MONITOR_TMP
根據(jù)數(shù)據(jù)表字段值的范圍進行分區(qū)。
創(chuàng)建完分區(qū)表后向表中添加一些數(shù)據(jù),declarenamevarchar2(10)。fractionnumber(5)。gradenumber(5)。inumber(8):=1。begin。foriin1。100000LOOP。當我們的查詢語句不指定分區(qū)的時候,如果分區(qū)字段出現(xiàn)在where條件之后,Oracle會自動根據(jù)字段值的范圍掃描響應的分區(qū)。