oracle分區表按時間自動建立

來源:互聯網
上載者:User

標籤:tick   oracle資料庫   operation   let   ble   匯入   select   val   操作   

表分區是一種思想,分區表示一種技術實現。當表的大小過G的時候可以考慮進行表分區,提高查詢效率,均衡IO。oracle分區表是oracle資料庫提供的一種表分區的實現形式。表進行分區後,邏輯上仍然是一張表,原來的查詢SQL同樣生效,同時可以採用使用分區查詢來最佳化SQL查詢效率,不至於每次都掃描整個表。

根據年: INTERVAL(NUMTOYMINTERVAL(1,‘YEAR‘))
根據月: INTERVAL(NUMTOYMINTERVAL(1,‘MONTH‘))
根據天: INTERVAL(NUMTODSINTERVAL(1,‘DAY‘))
根據時分秒: NUMTODSINTERVAL( n, { ‘DAY‘|‘HOUR‘|‘MINUTE‘|‘SECOND‘})

此時已經有普通表了,我建立了含相同欄位的分區表,把資料匯入到分區表中,再把原表刪掉。

-- Create table(WMS_OPERATION_RECORD)create table DPHOMEWMS.WMS_OPERATION_RECORD_TMP(  ID             NUMBER(19) not null,  WAREHOUSE_ID   NUMBER(19),  ASN_ID         NUMBER(19),  PICK_TICKET_ID NUMBER(19),  RELATION_CODE  VARCHAR2(50),  OPERATION_TYPE VARCHAR2(50),  OPERATION_ID   NUMBER(19),  OPERATION_NAME VARCHAR2(50 CHAR),  OPERATION_TIME TIMESTAMP(6),  STATUS         VARCHAR2(10),  TYPE           VARCHAR2(10),  COUNTS         NUMBER(10))tablespace DPHOMEWMS_DATAPARTITION BY RANGE (OPERATION_TIME) interval (numtoyminterval(1, ‘month‘)) STORE IN (DPHOMEWMS_DATA) (  partition OPERATION_RECORD_P01 values less than (TIMESTAMP‘ 2017-05-08 00:00:00‘)  tablespace DPHOMEWMS_DATA);-- Add comments to the columns comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.WAREHOUSE_ID  is ‘倉庫id‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.ASN_ID  is ‘收貨單id‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.PICK_TICKET_ID  is ‘發貨單ID‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.RELATION_CODE  is ‘關聯單據號(收貨單或發貨單的code)‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_TYPE  is ‘操作類型‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_ID  is ‘操作人ID‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_NAME  is ‘操作人名稱‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_TIME  is ‘操作時間‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.STATUS  is ‘狀態‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.TYPE  is ‘明細或者統計次數類型‘;comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.COUNTS  is ‘統計次數‘;update DPHOMEWMS.WMS_OPERATION_RECORD set OPERATION_TIME = sysdate where OPERATION_TIME is null;insert into DPHOMEWMS.WMS_OPERATION_RECORD_TMP select * from WMS_OPERATION_RECORD;drop table DPHOMEWMS.WMS_OPERATION_RECORD;alter table DPHOMEWMS.WMS_OPERATION_RECORD_TMP rename to WMS_OPERATION_RECORD;alter table DPHOMEWMS.WMS_OPERATION_RECORD enable row movement;

(1)OPERATION_TIME是分區鍵,每一個月會自動建立一個分區,分區鍵不允許為null。

(2)alter table table_name enable row movement;    是指允許分區表的分區鍵是可更新,當某一行更新時,如果更新的是分區列,並且更新後的列值不屬於原來的這個分區,如果開啟了這個選項,就會把這行從這個分區中delete掉,並加到更新後所屬的分區,此時就會發生rowid的改變。相當於一個隱式的delete+insert,但是不會觸發insert/delete觸發器。如果沒有開啟這個選項,就會在更新時報錯。

oracle分區表按時間自動建立

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.