행위

Group by 튜닝

DB CAFE

Dbcafe (토론 | 기여)님의 2023년 4월 26일 (수) 20:50 판 (GROUP BY 핵심 사항)
thumb_up 추천메뉴 바로가기


1 GROUP BY 튜닝[편집]

1.1 개요[편집]

  • Group by와 Order by를 동일한 칼럼에 결합하여 사용할때, 성능 개선 효과 발생
  • Group by를 수행하면 연관된 칼럼의 소팅을 포함해서 처리 하고 처리된 수행결과를 리턴함
  • Hash Group By 는 소팅 없이 이러한 결과를 생성함
    • 즉, Sort-Based Group by보다 항상 낳은 성능을 발휘한다.
    • 불행하게도 Order By 절을 동일 칼럼에 Group By절과 함께 사용한다면 Sort-Based Group by로 변경하며 성능은 저하될수 있음

OPT_PARAM("_GBY_HASH_AGGREGATION_ENABLED" "FALSE") 힌트

1.2 GROUP BY 튜닝 핵심 사항[편집]

  1. 오라클에서 ORDER BY를 해야하는 상황에서 강제적으로 HASH GROUP BY를 수행하도록 하는것이 핵심
  2. 오라클이 HASH GROUP BY를 수행할 수 있도록 서브쿼리에 GROUP BY를 수행하도록 만들었다.
  3. 그리고 외부 쿼리에서 ORDER BY를 수행할때 NO_MERGE 힌트를 지정하여, 외부 쿼리가 내부 서브쿼리에 통합되지 않도록 지정했다.
  4. 결과적으로 플랜을 보면, HASH GROUP BY를 수행하고, 그 결과를 SORT ORDER BY로 처리되도록 재설정 되었다.