关于Oracle分区分表的总结
2020/04/21 09:41:32 来源:Linux社区 作者:butcher36

今天系统遇到问题,Oracle数据访问越来越慢,查明细表,400w数据,当然距离大数量还查很多,但是对于我们系统查询已经很慢了,开始着手分区分表操作;

网上学习,oracle分区sql如下:

-- Create table

create table FIN_ACCOUNT_AR_EMP2

(

  id               VARCHAR2(32) not null,

  ori_type         VARCHAR2(10),

  create_type      VARCHAR2(10),

  status           VARCHAR2(500),

  operater         VARCHAR2(32),

  create_time      TIMESTAMP(6),

  update_time      TIMESTAMP(6),

  branch_id        VARCHAR2(32),

  offset_id        VARCHAR2(32),

  be_offset_id     VARCHAR2(32),

  operate_time     VARCHAR2(50),

  is_collection    VARCHAR2(32),

  is_import        VARCHAR2(32)

)

PARTITION BY RANGE (operate_time) INTERVAL (numtoyminterval(1, 'month'))

(partition FIN_ACCOUNT_AR_EMP0 values less than(to_date('2019-08-01', 'yyyy-mm-dd')));

(partition FIN_ACCOUNT_AR_EMP2 values less than(to_date('2019-09-01', 'yyyy-mm-dd')));

(partition FIN_ACCOUNT_AR_EMP3 values less than(to_date('2019-10-01', 'yyyy-mm-dd')));

(partition FIN_ACCOUNT_AR_EMP4 values less than(to_date('2019-11-01', 'yyyy-mm-dd')));

(partition FIN_ACCOUNT_AR_EMP5 values less than(to_date('2019-12-01', 'yyyy-mm-dd')));

(partition FIN_ACCOUNT_AR_EMP6 values less than(to_date('2020-01-01', 'yyyy-mm-dd')));

(partition FIN_ACCOUNT_AR_EMP7 values less than(to_date('2020-02-01', 'yyyy-mm-dd')));

我在测试环境,按照一个月进行分区;

但是提示错误,不支持分区:oracle未启用Partintioning功能;

执行如下sql:SELECT   VALUE   FROM   V$OPTION   WHERE   UPPER(PARAMETER)= 'PARTITIONING ';

TRUE                                --[说明当前  Oracle  版本支持分区功能]
如果这个参数值时false,则说明当前Oracle版本不支持分区功能。

查询安装的oracle版本:select   *   from   v$version; 

测试环境安装的是标准表,不支持分区。。。只能卸载重新安装企业版,只有企业版支持oracle分区;

补充:

SELECT segment_name AS TABLENAME,round(BYTES/1024/1024,2)  FROM user_segments;

上面sql,查询该用户下所有表占的空间大小,单位为M;

更多Oracle相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2020-04/162976.htm


7

本栏最新