SQL> create table t_hash1
(c1 number, c2 varchar2(10))
partition by hash(c1)
(partition p1 tablespace users,
partition p2 tablespace users);
SQL> create index t_hash1_idx on t_hash1(c1) local;
SQL>insert into t_hash1
select level, 'GHLEE'
from dual
connect by level <=1000;
SQL>commit;
-- 각 Partition의 갯수
SQL> select count(*) from t_hash1 partition (p1);
COUNT(*)
-----------
495
SQL> select count(*) from t_hash1 partition (p2);
COUNT(*)
-----------
505
1 rows selected.
-- Partition추가
SQL> alter table t_hash1 add partition p3 tablespace users;
Statement Processed.
-- 각 partition의 갯수
SQL> select count(*) from t_hash1 partition (p1);
COUNT(*)
-----------
234
SQL> select count(*) from t_hash1 partition (p2);
COUNT(*)
-----------
505
SQL> select count(*) from t_hash1 partition (p3);
COUNT(*)
-----------
261
결론 : 선형적 해쉬 알고리즘에 의해서 처음 partition에서 나누어서 p3에 저장 하는 방식.
그러므로 hash partition의 갯수는 2의 배수로 설정하는 것이 좋음^^