4.1 NL 조인

개발자 로그·2021년 6월 10일
0

친절한SQL튜닝

목록 보기
12/15
post-thumbnail
  • 인덱스를 이용한 기본 조인
  • use_nl : nl 방식으로 조인하라는 지시
  • OLTP 시스템에서 튜닝할 때는 nl 조인부터 고려하는 것이 올바른 순서
  • 랜덤 액세스 위주의 조인 방식 ⇒ 레코드 하나를 읽기 위해 블록을 통째로 읽기때문에 대량 데이터 처리 시 불리
  • 한 레코드 씩 순차적으로 진행
  • 인덱스 구성 전략이 중요

건건이 I/O Call을 발생시키는 비효율을 줄이기 위한 기능

테이블 Prefetch

  • 인덱스를 이용해 테이블을 엑세스 하다가 디스크 I/O가 필요해지면 이어서 곧 읽게될 블록까지 미리 읽어서 버퍼캐시에 적재하는 기능
  • 유도 : nlj_prefetch , 방지 : no_nlj_prefetch

배치 I/O

  • 디스크 I/O Call을 미뤘다가 읽을 블록이 일정량 쌓이면 한꺼번에 처리하는 기능
  • 유도 : nlj_batching , 방지 : no_nlj_batching
  • from절에 서브쿼리를 사용한 join이 있는 경우에는 11g부터 NL 조인 결과 집합이 항상 일정한 순서로 출력되기 원하면, 배치 I/O 기능이 작동하지 않도록 no_nlj_batching 힌트를 사용하거나, 안쪽과 바깥쪽 쿼리에 ORDER BY 절에 정렬 기준을 명시해야 한다.
profile
성장하는 개발자

0개의 댓글

관련 채용 정보