WITH절을 사용할 때 주의해야 할 점은?

{+}동시성이 높은 경우 MATERIALIZE 동작방식은 피하자{+} 

  • MATERIALIZE방식으로 수행되면, Global Temporary Table에 데이터를 저장하고, 데이터를 읽어 처리해야 하므로, control 파일을 읽게 된다.
  • control file sequential read라는 Wait Event가 빈번하게 발생하므로 주의해서 사용해야 한다.

{+}추출건수가 많은 경우는 WITH절은 피하자{+}

  • MATERIALIZE방식은 추출데이터를  Global Temporary Table에 저장하여 사용하므로, 추출건수가 많은 경우 Global Temporary Table에 대한 읽기/쓰기에 대한 일량이 많으므로, 성능개선의 효과를 볼수 없다.

{+}WITH절 선언부분은 SQL의 가장 앞에 위치시키자{+}

  • 데이터 정합성 문제가 발생될 수 있으므로, 반드시 WITH절은 맨 앞에 위치시킨다.