4.A Part 4를 마무리 하며

Part 4의 핵심

  1. Search Type 개념이 중요하다
    • Iterative Type, Linear Type 특징을 잘 살펴봐야 한다.
    • 4.4장 Turn 규칙과 두 번째 Turn 규칙을 잘 알아두어야 한다.
    • Linear 와 Iterative Type 의 첫 번째 Turn 규칙은 Iteration 의 개수가 N + 1 이라는 것. 최초에 모든 서브쿼리를 Unnesting 하며 그 이후로는 0 (Unnesting되지 않는 상태) 이 왼쪽에서 오른쪽으로 이동하며
      Iteration 이 증가한다.
    • 두 번째 Turn 규칙은 Unnesting 되지 않는 서브쿼리는 2개씩이며, N - 1 번 만큼 규칙대로 반복한다.
      이 때, 첫 번째 Turn에서 사용했던 Iteration 을 재사용한다.
    • 첫 번째 Turn에서 최저 Cost로 update 된 Iteration은 재사용 하지 못한다.
  2. Stat Space 개념과 CA, Sub Heap 동작방식을 알아두면 Logical Optimizer 내부원리가 보인다.
    • Stat space 란 Iteration 상태를 저장하는 shared pool 내의 영역이다.
    • CA를 이용하여 모든 쿼리블록의 Cost 를 저장할 수 있다.
    • 쿼리블럭의 Cost 를 재사용할 때 CA의 진가가 드러난다.
    • CBQT 발생 시 Sub heap 메모리 영역을 Costing 시 사용한다. 이후 Costing완료되면 반환하여 효율적인 메모리 관리가 가능하다.
  3. Interleaving과 Juxtaposition 을 모르면 10053 Trace 를 해석할 수 없다.
    • 이 둘은 CBQT간 관계이며, 원리이다.
    • Interleaving은 선 변환과정이 필요하나, Juxtaposition 은 선 변환과정이 필요없는 배타적 관계에서 적용된다.
    • CSU가 발생된다면, Interleaving기능에 의해 CVM과 JPPD가 동시에 고려된다.
    • 서브쿼리가 없고 인라인뷰만 있는 경우, Juxtaposition 기능에 의해 CVM, JPPD가 동시에 고려된다.