[Oracle] 테이블 랜덤 액세스


[Oracle] 테이블 랜덤 액세스

SQL 튜닝에서는 랜덤 I/O가 중요하다. 질문 파티션 Pruning은 조건절에 해당하는 파티션만 읽는 기능이라고 알고 있다. 인덱스를 이용해도 조건절에 해당하는 데이터만 골라서 읽는데, 파티션 Prunning이 왜 필요한지 궁금하다. 관리적 측면을 제외하고 성능적 측면에서 굳이 파티션이 필요할까? 인덱스로 검색해도 빠른데 왜 굳이 파티셔닝을 할까? 인덱스로 검색하는 데 왜 느릴까? 인덱스 ROWID는 물리적 주소? 논리적 주소? SQL이 참조하는 컬럼을 인덱스가 모두 포함하는 경우가 아니면, 인덱스를 스캔 한 후에 반드시 테이블을 액세스한다. TABLE ACCESS BY INDEX ROWID라고 표시된 부분 인덱스를 스캔하는 이유는 검색 조건을 만족하는 소량의 데이터를 인덱스에서 빨리 찾고 거기서 테이블 레코드를 찾아가기 위한 주소값인 ROW를 얻음 ROWID는 논리적 주소다. 디스크 상에서 테이블 레코드를 찾아가기 위한 위치 정보를 담는다. 메인 메모리 DB와 비교 메인 메모리 ...


#ORACLE #SQL큐닝 #친절한SQL튜닝

원문링크 : [Oracle] 테이블 랜덤 액세스