인덱스 파티셔닝 가이드(고급 SQL 튜닝) - SQL전문가 가이드 p.722~p.723
개발 및 관리/Oracle 9i, 10g, 11g, 12c, 19c 2012. 10. 26. 18:47
- 인덱스 파티션은 파티션 테이블과 마찬가지로 성능, 관리 편의성, 가용성, 확장성 등을 제공한다. 테이블에 종속적인 Local 파티션, 테이블과 독립적인 Global 파티션 모두 가능하지만, 관리적인 측면에서는 Local 인덱스가 훨씬 유용하다. 테이블 파티션에 대한 Drop, Exchange, Split 등의 작업 시 Global 인덱스는 Unusable 상태가 되기 때문이다. 인덱스를 다시 사용할 수 있게 하려면 인덱스를 Rebulid 하거나 재생성해 주어야 한다.
구분 |
적용기준 및 고려사항 |
Non Partition |
1) 파티션 키 칼럼이 WHERE절에 누락되면 여러 인덱스 파티션을 액세스해야 하므로 비효율적. 특히, OLTP 환경에서 성능에 미치는 영향이 크므로 Non Partitioning 전략이 유용할 수 있음. 2) NL Join에서 파티션 키에 대한 넓은 범위검색 조건을 가지고 Inner 테이블 액세스 용도로 인덱스 파티션이 사용된다면 비효율적 àNon Partition 인덱스 사용을 고려 3) 파티션 인덱스를 이용하면 sort order by 대체 효과 상실, 소트 연산을 대체함으로써 부분범위 처리를 활용하고자 할 땐 Non Partition 전략이 유용 4) 테이블 파티션 이동, 삭제 등의 작업 시 unusable 되므로 적용 시 주의 |
Global Prefixed |
1) 인덱스 경합 분산에 효과적 2) 여러 Local 인덱스 파티션을 액세스하는 것이 비효율적일 때 대안으로 활용 가능 3) 테이블 파티션 이동, 삭제 등의 작업 시 unusable 되므로 적용 시 주의 |
Local Prefixed |
1) 관리적 측면에서 유용: 테이블 파티션에 대한 추가, 삭제 등의 작업이 빈번할 때 2) 이력성 데이터를 주로 관리하는 DB 환경에 효과적 3) 파티션 키 칼럼이 ‘=’ 조건으로 사용될 때 유용 4) 파티셔닝 칼럼에 대한 검색 조건이 없으면 인덱스 선두 칼럼이 WHERE절에 누락된 것이므로 정상적인 사용이 불가(Index Full Scan으로는 선택 가능) 5) 파티션 키 칼럼(=인덱스 선두 칼럼)이 LIKE, BETWEEN, 부등호 같은 범위검색 조건일 때 불리 |
Local Non Prefixed |
1) 관리적 측면에서 유용: 테이블 파티션에 대한 추가, 삭제 등의 작업이 빈번할 때 2) 이력성 데이터를 주로 관리하는 DB 환경에 효과적 3) 파티션 키 칼럼이 WHERE절에 사용될 때 유용 4) 파티셔닝 칼럼에 대한 검색 조건이 없으면 인덱스 파티션 전체를 액세스하는 비효율이 발생할 수 있으므로 주의 5) 파티션 키 칼럼이 범위검색 조건으로 자주 사용된다면 Local Prefixed 보다 Local Non Prefixed가 유리. 그렇더라도 좁은 범위검색이어야 함. |
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
병렬 처리 활용(고급 SQL 튜닝) - SQL전문가 가이드 p.727~p.728 (0) | 2012.10.26 |
---|---|
배치 프로그램 튜닝 요약(고급 SQL 튜닝) - SQL전문가 가이드 p.727 (0) | 2012.10.26 |
Merge문 활용(고급 SQL 튜닝) - SQL전문가 가이드 p.714~p.715 (0) | 2012.10.26 |
소트 영역 크기 조정(고급 SQL 튜닝) - SQL전문가 가이드 p.706~p.707 (0) | 2012.10.26 |
소트 영역을 적게 사용하도록 SQL 작성 - SQL전문가 가이드 p.695~p.706 (0) | 2012.10.26 |