10.2.4 散列分区

在很多情况下,用户无法预测某个列上数据的变化范围,因而无法事先创建固定数量的范围分区或列表分区,使用户的数据按照分区列上的数据分布在相应的分区中。

在这种情况下,可以创建散列分区。当用户向表中写入数据时,数据库服务器将根据一个散列函数对数据进行计算,把数据均匀地分布在各个分区中。在散列分区中,用户无法预测数据将被写入哪个分区。

现在我们重新考虑产品销售表的例子。如果销售城市不是相对固定的,而是遍布全国各地,这时很难对该表进行列表分区。如果为该表进行散列分区,可以很好地解决这个问题。


SQL>CREATE TABLE sales(

sales_id number(6),

year number(4),

month number(2),

day number(2),

salesman char(8),

city char(10))

PARTITION BY HASH(city)

(PARTITION P1,

PARTITION P2,

PARTITION P3,

PARTITION P4

);