美文网首页
Oracle 表分区处理海量历史数据方案

Oracle 表分区处理海量历史数据方案

作者: 龙啊子工作室 | 来源:发表于2020-09-11 10:38 被阅读0次

    前言

    在实际项目中,随着项目的运行,数据量会越来越大,势必会影响到现有项目的性能以及体验。数据库的压力也随之增大。同时历史数据又不能轻易删除,需要保留一段时间。所以我们就需要有一种方案来解决这个问题。


    解决方案

    1. 创建与现有数据库表结构相同的历史分区表。按照最后更新时间创建分区。
     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分区
     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. 创建定时任务
      1. 定时执行sql新增分区。如果分区已存在则不创建。
      2. 定时执行对原数据表中的数据做数据迁移到分区表中。并删除原数据表中已迁移的数据。
      3. 如有需要还可定时执行删除历史数据表中已超过最大保存时效 的数据分区。

    相关文章

      网友评论

          本文标题:Oracle 表分区处理海量历史数据方案

          本文链接:https://www.haomeiwen.com/subject/rnuvektx.html