日期:2014-05-17  浏览次数:20828 次

关于散列分区的问题
Partition   by   hash(bbb)
Part   n
Store   in   (part1_ts,…,partx_ts);
我的理解是bbb有几种取值情况,则有几个表分区,不知道是否理解有错误

如果bbb的取值多于n种情况当如何?


------解决方案--------------------
hash分区最主要的机制是根据hash算法来计算具体某条纪录应该插入到哪个分区中.hash算法中最重要的是hash函数,Oracle中如果你要使用hash分区,只需指定分区的数量即可
建议分区的数量采用2的n次方,这样可以使得各个分区间数据分布更加均匀
具体例子如下:
drop table emp;
create table emp (
empno number(4),
ename varchar2(30),
sal number)
partition by hash (empno)
partitions 8
store in (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);