select * from sys.user_part_tables
where table_name = 'table_xxxx'
----------------------------------------------------------
table_name ........partitioning_type ..subpartitioning_type
............
----------------------------------------------------------
table_xxxx ........RANGE ..............HASH
<=== 이놈을 range로 바꾸고싶습니다.
오라클 9i 입니다.
데이타가 일별 250만건이고 column갯수는 약 200개 총 6달치를
보관하고있습니다.
인덱스는 약 15개정도 있고, 인덱스 column갯수는 보통 6~10개정도
됩니다.
(인덱스양도 만만찬습니다)
조회는 일별조회를 하는데, 문제는 HASH 이놈
때문에... 꼭 정렬을 해야됩니다. (rank() over)
테이블을 삭제하고 다시 생성하는 것은 불가능하고, 현재상태에서
저놈만 RANGE로 바꿀수있는
좋은 방법이 없을까요?
안되는걸로 알고있는데 그래도 아쉬워서 한번 문의드립니다.
위에 테이블은 거의 24시간 내내 insert, update, select가
발생합니다.
물론, range로 바꿨을때, insert성능에는 영향이 갈것같지만,
select를 order by(또는 rank() over)하는것 보다는
낳을것같습니다.
조언부탁드립니다.
|