解决方案 »

  1.   

     CREATE TABLE BIG_TABLE_T
    (
        SYNC_RELATION_NO    NUMBER(10)                NOT NULL,
        SYNC_ACTION         NUMBER(2)                 NOT NULL,
        SYNC_WHERE          VARCHAR2(1000 BYTE)
    )
    PARTITION BY HASH (SYNC_RELATION_NO)
    (
        Partition SYNC1,
        Partition SYNC2,
        Partition SYNC3
    ); 
      

  2.   

    散列分区
    允许用户对不具有逻辑范围的数据进行分区 
    通过在分区键上执行HASH函数决定存储的分区
    将数据平均地分布到不同的分区
    散列分区语法:
    PARTITION BY HASH (column_name)
    PARTITIONS number_of_partitions;

    PARTITION BY HASH (column_name)
    ( PARTITION part1 [TABLESPACE tbs1],
      PARTITION part2 [TABLESPACE tbs2],
      ...
      PARTITION partN [TABLESPACE tbsN]);
      

  3.   

    CREATE TABLE BIG_TABLE_T
    (
      SYNC_RELATION_NO    NUMBER(10)                NOT NULL,
      SYNC_ACTION         NUMBER(2)                 NOT NULL,
      SYNC_WHERE          VARCHAR2(1000 BYTE),
      SYNC_DATE           DATA
    )
    partition by range (SYNC_DATE)
    subpartition by hash (SYNC_RELATION_NO)
    subpartitions 3 store in (dinya_space07,dinya_space08,dinya_space09) 
    (partition date1 values less than (to_date('20130501','YYYYMMDD')),
     partition date2 values less than (to_date('20140501','YYYYMMDD')),
     partition date3 values less than (maxvalue)
    );如果非要HASH分区并且你还要区分时间段的话 可以创建为复合分区 也就是子分区  小弟也是刚学不知道写错没有 大概就是这样
      

  4.   

    按照你的说法不适合建hash分区,你要清理14年5月份前的数据,需要建立针对时间的
    列表分区或者范围分区比较合适。
    hash分区建表语句:
    CREATE TABLE BIG_TABLE_T
    (
      SYNC_RELATION_NO    NUMBER(10)                NOT NULL,
      SYNC_ACTION         NUMBER(2)                 NOT NULL,
      SYNC_WHERE          VARCHAR2(1000 BYTE)
    )
      partition by hash(SYNC_RELATION_NO    )
      partitions 9;    (9代表9个分区,你需要分几个分区,就写成几个)