[DB/Oracle] 병렬처리 Hint /*+PARALLEL(N)*/

    728x90
    반응형

    2022.05.31

    95번째 포스팅

     

    프로젝트를 진행하다보면 튜닝전문가들에게 불려갈 때가 있다.

    대부분의 이유는 쿼리의 검색량이 너무 많다거나 시간이 너무 오래 걸려서 최적화가 필요하기 때문이다.

    그럴때마다 Hint를 적용하여 최적화 문제를 해결하게 된다.

    오늘은 많은 Hint 종류 중, 병렬처리에 대해 기록해보려고 한다.

     

     

    0. Hint

      ① 실행하려는 SQL문에 사전에 정보를 주어 빠른 결과를 가져오는 효과를 만드는 문법이다.

      ② 테이블 접근 순서를 변경하거나 처리 순서 및 실행계획에 영향을 준다.

      ③ PARALLEL은 스레드의 갯수를 늘려 SQL문의 실행속도를 빠르게 만들어준다.(=병렬처리)

     

     

    1. 병렬처리

      ① 사용방법

    SELECT /*+ PARALLEL(N) */
                     *
    FROM     TABLE01

      ② 힌트와 사용방법이 비슷하지만 +를 붙여야 힌트로서 작동한다.

      ③ PARALLEL은 병렬처리를 뜻하는 HINT이며, (N)은 스레드의 갯수를 의미한다.

     

     

    2. 주의할점

      ① 스레드의 갯수는 일반적으로 4 ~ 8로 제한된다.

      ② PARALLEL을 사용하지 않아도 되는 SQL문이나 시스템 리소스가 부족한 경우는 적합하지 않다.

      ③ 스레드의 갯수를 작성하지 않으면 디폴트로 지정된 갯수만큼 스레드가 사용되므로 갯수를 지정하는 것이 좋다.

      ④ PARALLEL은 시스템 리소스를 많이 사용하므로 가장 마지막에 고려되어야 한다.

    728x90
    반응형

    댓글