在Oracle10g中,沒有定義間隔分區(qū),只能通過范圍分區(qū)實現(xiàn)間隔分區(qū)功能,如果要實現(xiàn)自動創(chuàng)建分區(qū),只能通過創(chuàng)建JOB或者scheduler來實現(xiàn);而在11g中,Oracle直接提供了間隔分區(qū)功能,大大簡化了間隔分區(qū)的實現(xiàn)。
創(chuàng)新互聯(lián)公司成立于2013年,先為泰安等服務(wù)建站,泰安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為泰安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
----注:oracle11g雖然可以自動分區(qū),但是分區(qū)的名字不能自定義,對于需要定時刪除分區(qū)時沒法處理,不如通過時間范圍來手工分區(qū)。詳見
create table HIP_LOG_NODE_Part
(
ID?????????????????? VARCHAR2(32)???????? not null,
RECORD_TIME????????? DATE
)tablespace TB_HIP_LOG_NODE
PARTITION BY RANGE (RECORD_TIME) interval (numtoyminterval(1, 'month'))
STORE IN (TB_HIP_LOG_NODE)
(
partition hip_log_node_partition values less than (to_date('2019-08-01 00:00','yyyy-MM-dd HH24:mi')) tablespace TB_HIP_LOG_NODE
);
1、Oracle11g有間隔分區(qū)功能,對于使用Range分區(qū)的可以按年,月,日來自動生成分區(qū)。
2、2019-08-01前的數(shù)據(jù)(包含8月份的數(shù)據(jù))會放入hip_log_node_partition?分區(qū),8月1日后的數(shù)據(jù)每月只要有數(shù)據(jù),就會自動創(chuàng)建一個分區(qū)。也就是從9月開始,開始新建分區(qū)。
3、interval函數(shù)--將數(shù)值按標(biāo)準(zhǔn)換算為日期
numtodsinterval、numtodsinterval函數(shù),將數(shù)字轉(zhuǎn)成年月,時分秒
詳見:
4、查看表分區(qū) select table_name,partition_name from user_tab_partitions where table_name='INTERVAL_SALES';
5、插入數(shù)據(jù)再次查看分區(qū),詳見:
6、修改分區(qū)、合并分區(qū)、拆分分區(qū),詳見 :
7、創(chuàng)建索引(分區(qū)索引、全局索引) :
非分區(qū)字段創(chuàng)建主鍵,則創(chuàng)建主鍵local索引時必須加上分區(qū)字段
ALTER TABLE TEST ADD CONSTRAINT PK_TEST PRIMARY KEY (主鍵字段,分區(qū)字段) USING INDEX LOCAL;
8、oracle 10g創(chuàng)建表分區(qū)
9、刪除
1.不保留,直接刪除:
alter table table_name drop/truncate partition partition_name;
具體用drop還是truncate,得你自己衡量,drop的話原來的分區(qū)和數(shù)據(jù)直接就沒有了,truncate的話,只是數(shù)據(jù)沒有了,分區(qū)還在。
常用兩種方法:
一種是使用create table as select方式創(chuàng)建一個分區(qū)表,然后將普通表重命名,然后對新的分區(qū)表創(chuàng)建所需索引,重命名等。
另外一種是在線重定義方式,調(diào)用DBMS_REDEFINITION這個包來實現(xiàn),詳情可百度學(xué)習(xí)下。
-------------------------------------------------------------------
個人推薦第一種,穩(wěn)妥,速度也不錯,嘿嘿!
有很多種方法可以做分區(qū)表轉(zhuǎn)換,常見的有:
1、CTAS,在建分區(qū)表時就把源表數(shù)據(jù)插進(jìn)去
2、建分區(qū)表,從源表導(dǎo)出,再導(dǎo)入分區(qū)表,10g可以用數(shù)據(jù)泵
3、在線重定義,不影響業(yè)務(wù),但速度慢些
2億數(shù)據(jù)如果按平均行長70也就是十幾g,不會很慢,只要存儲不太差,估計個把小時怎么也完事了。在線重定義比較慢,但一晚上也沒問題,30g的搞過6,7個小時。