关于Oracle分区分表的总结

今天系统遇到问题,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.heiqu.com/cc39aba2cc37776c6df24a0eee7a21ae.html