2012-03-26 75 views
0

我想有一个APPID公平分配,并希望使用散列分区..在甲骨文散列分区的公平分配?

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行,但所有人都在一个分区中去only..i要在所有分区之间平均分配数据..任何想法它.. ??

回答

1

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

我会用,比如,1000个或10000行试试,看看分区的实际工作相当好(即假设每个分区225-275(或2250年至2750年)行)。

+0

如果APPID列的哈希大多same..then怎么会平均分配??(iemy APPID是这样1,10,1000,那么这一切的哈希值会去同一个分区) 。 – 2012-03-26 12:50:17

+0

他们是_actually_主要方式是相同的预期值?如果是这样,那么好吗 - 你必须在你需要使用正确的行为为您的数据不同的散列函数一个角落的情况。 – AKX 2012-03-26 19:32:39