Oracle表分区

来源:互联网 发布:复杂网络中的幂律分布 编辑:程序博客网 时间:2024/04/30 21:42

       大数据、高并发、如何提高性能在这样一个大数据时代,是我们必须要面对的。系统真正上线,运用到生活中,随着时间的推移,有些问题就开始暴漏,数据量大导致查询效率低,内存泄露,不能灵活应对需求的变更,重复性代码太多。

 

     所以说设计很重要,架构师的职责是什么?这些问题要不要考虑,DBA的职责是什么,数据库设计时是否应该考虑这些。

 

      最近了解了一下表分区,随着数据量越来越多,所有需要优化我们的数据库了。使用表分区提高系统的性能。

加索引、使用表分区

 

Oracle的分区:

1、范围分区:基于范围映射到每一个分区,创建分区时,由指定的分区键决定

2Hash分区:通分区键运过对用Hash算法从而决定数据的分区归属

3、复合分区:这种分区是基于范围分区和散列分区,表首先按某列进行范围分区,然后再按某列进行散列分区

 

       随着数据量的增加,出现的问题越来越多,优化数据库是我们不得不考虑的。我们可以加索引,可以进行表分区。说的虽然简单,但是没有实践过,说再多都是无用的。

 

第一步,我们加了索引,提高了我们查询数据库的效率,可以创建唯一索引,可以利用索引的唯一性来控制记录的唯一性。

 

例如:

-- Create/Recreate indexes create unique index INDX_SD_MDATA_DCREATETIME on 表名 (D_CREATETIME, S_MONITORINGPOINTCODE);

使用分区的优点:

 

我们之所以优化数据库的原因是查询数据库时效率极低,进行表分区可以提高查询效率,将要查询的表进行分区,提高检索的速度,其他的优点我还没有体会到,了解了在分享。

 

范围分区实例:

-- Create tablecreate table XX(  字段名1                   类型 not null,  字段名2                         VARCHAR2(20) not null,  字段名3                         VARCHAR2(100) not null,  字段名4                                     VARCHAR2(20) not null,  字段名5                                      VARCHAR2(20) not null,   字段名6                     VARCHAR2(10) not null,  字段名7                       NUMBER,  字段名8                            NUMBER not null,  字段名9                                  NUMBER)partition by range (入库时间字段)(  partition XX_PART1 values less than (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))    tablespace Interface_DATA    pctfree 10    initrans 1    maxtrans 255    storage    (      initial 10M      next 10M      minextents 1      maxextents unlimited      pctincrease 0    )

第一次学习表分区,技术欠缺,只是了解一丢丢。多多总结,不足之处大家指出,互相学习。



1 0
原创粉丝点击