关于hash分区

小新蜡笔 2015-01-28 03:14:16
现我有一张表数据量很大,需要清理14年5月份前的数据,如何对SYNC_RELATION_NO字段进行hash分区?

CREATE TABLE BIG_TABLE_T
(
SYNC_RELATION_NO NUMBER(10) NOT NULL,
SYNC_ACTION NUMBER(2) NOT NULL,
SYNC_WHERE VARCHAR2(1000 BYTE)
)
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
不写代码的钦 2015-01-28
  • 打赏
  • 举报
回复
按照你的说法不适合建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个分区,你需要分几个分区,就写成几个)
阳阳阳丶 2015-01-28
  • 打赏
  • 举报
回复
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分区并且你还要区分时间段的话 可以创建为复合分区 也就是子分区 小弟也是刚学不知道写错没有 大概就是这样
lyangsoft 2015-01-28
  • 打赏
  • 举报
回复
引用 1 楼 u012355452 的回复:
 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
); 
散列分区 允许用户对不具有逻辑范围的数据进行分区 通过在分区键上执行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]);
lyangsoft 2015-01-28
  • 打赏
  • 举报
回复
 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
); 

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧