본문 바로가기
DB/Oracle

Partition Range Iterator VS Partition Range ALL

by Tomining 2016. 2. 10.
Oracle Query Plan 을 확인하다보면 Partition Range Iterator 와 Range ALL 플랜을 접하게 된다.
무슨 차이가 있을까?

Partition 이 무엇인지는 구글링 해보면 많이 확인 할 수 있다.
테이블 또는 인덱스를 실제로 나눠져 저장되지만, 논리적으로 하나의 테이블/인덱스로 관리하기 위해 사용된다.
성능 상 이점 또한 있다. 자세한 설명은 아래 링크를 참고하자.

이를 알기 위해서는 Partition Pruning 개념을 먼저 알아야 한다.

Partition Pruning
  • 가지치기라는 의미를 갖고 있으며, 불필요한 Partition Access 를 줄이는 작업
  • WHERE 절 조건과 관련된 Partition 만 Access 하므로 성능상 이점
  • DBMS 가 알아서 처리하므로 사용자가 별도로 할 일은 없음
  • Partition Key가 변경되거나 DataType 이 변경되면 Pruning 이 불가능해질 수 있음.


결론...
Partition Range Iterator 플랜으로 쿼리가 수행되더라도 WHERE 절 조건이 전체 범위를 대상으로 하고 있다면, Partition Range ALL 과 차이가 없다.
Partition Pruning 효과가 있을 때 빛을 발휘한다. 적절히 잘 사용하자.



참고자료