Oracle 表分區(qū)處理海量歷史數(shù)據(jù)方案

前言

在實際項目中,隨著項目的運行,數(shù)據(jù)量會越來越大,勢必會影響到現(xiàn)有項目的性能以及體驗。數(shù)據(jù)庫的壓力也隨之增大。同時歷史數(shù)據(jù)又不能輕易刪除,需要保留一段時間。所以我們就需要有一種方案來解決這個問題。


解決方案

  1. 創(chuàng)建與現(xiàn)有數(shù)據(jù)庫表結(jié)構(gòu)相同的歷史分區(qū)表。按照最后更新時間創(chuàng)建分區(qū)。
 CREATE TABLE CUSTOMER 
 ( 
     CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, 
     FIRST_NAME  VARCHAR2(30) NOT NULL, 
     LAST_NAME   VARCHAR2(30) NOT NULL, 
     PHONE        VARCHAR2(15) NOT NULL, 
     EMAIL        VARCHAR2(80), 
     STATUS       CHAR(1),
     LAST_UDT     DATE
 ) 
 --按用戶ID分區(qū)
 PARTITION BY RANGE (CUSTOMER_ID) 
 ( 
     PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, 
     PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 
 )
  1. 創(chuàng)建定時任務(wù)
    1. 定時執(zhí)行sql新增分區(qū)。如果分區(qū)已存在則不創(chuàng)建。
    2. 定時執(zhí)行對原數(shù)據(jù)表中的數(shù)據(jù)做數(shù)據(jù)遷移到分區(qū)表中。并刪除原數(shù)據(jù)表中已遷移的數(shù)據(jù)。
    3. 如有需要還可定時執(zhí)行刪除歷史數(shù)據(jù)表中已超過最大保存時效 的數(shù)據(jù)分區(qū)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容