在Oracle中平均分配哈希分区?

时间:2012-03-26 11:49:20

标签: sql oracle11g

我希望在APPID上拥有相同的分布,并希望使用HASH PARTITION ..

create table AVAILABLE_WEB_DETAILS4
(
  "5mintime" TIMESTAMP,
  username VARCHAR2(64) DEFAULT cast('UNKNOWN' as VARCHAR2(7)),
  host number,
  src_zone VARCHAR2(32),
  domain VARCHAR2(512),
  dst_zone VARCHAR2(32),
  content VARCHAR2(64),
  category VARCHAR2(64),
  url VARCHAR2(1024),
  hits number DEFAULT 1, 
  bytes number, 
  appid VARCHAR2(32),  
  application VARCHAR2(64),
  categorytype VARCHAR2(64) DEFAULT cast('UNKNOWN' as VARCHAR2(7)),
  usergroup VARCHAR2(384) DEFAULT cast('UNKNOWN' as VARCHAR2(7))
)
partition by hash(APPID)
partitions 4
store in (IVIEWDB);

我已插入6行,但所有只在一个分区中进行..我想在所有分区之间平均分配数据..对它的想法.. ??

1 个答案:

答案 0 :(得分:1)

6行实际上不够高n - 无论Oracle使用什么样的散列函数,6行返回相同的散列模4的概率都非常高。

我会尝试使用1000或10000行来查看分区是否实际上运行得相当好(例如,假设每个分区有225-275(或2250-2750)行)。