본문 바로가기

SQL/ORACLE(PL)

hint 사용이유

반응형

오라클 힌트(Oracle Hint)는 SQL 쿼리 옵티마이저에게 쿼리 실행 계획을 조정하도록 지시하는 특별한 주석입니다. 힌트는 쿼리를 최적화하는 데 도움이 되지 않는 경우에만 사용해야 합니다. 힌트를 사용하여 쿼리 실행 계획을 조정할 수 있으므로 특정 상황에서 성능을 향상시키는 데 유용할 수 있습니다. 그러나 오라클 데이터베이스가 업그레이드되면서 옵티마이저가 발전하면서 힌트를 사용하는 것은 피하는 것이 좋습니다. 힌트는 일반적으로 다음과 같은 형식으로 쿼리에 포함됩니다.

SELECT /*+ hint */ column1, column2 FROM table_name;

여기서 hint는 실제 힌트입니다. 힌트의 사용은 주석 기호인 /*+ */ 안에 넣어집니다.

오라클에서 가장 널리 사용되는 힌트 중 일부는 다음과 같습니다.

  1. /*+ INDEX(table_name index_name) */: 특정 인덱스를 사용하여 쿼리를 실행하도록 지시합니다.
  2. /*+ FULL(table_name) */: 풀 스캔을 수행하도록 지시합니다.
  3. /*+ ORDERED */: 조인 순서를 지정합니다.
  4. /*+ HASH_JOIN */: 해시 조인을 수행하도록 지시합니다.
  5. /*+ MERGE_JOIN */: 병합 조인을 수행하도록 지시합니다.
  6. /*+ USE_NL(table_name) */: 특정 테이블에 대해 루프 조인을 사용하도록 지시합니다.
  7. /*+ PARALLEL(table_name, degree) */: 병렬 실행을 사용하도록 지시합니다.

힌트의 사용은 주로 성능 문제를 해결하는 데 쓰입니다. 그러나 힌트를 사용하기 전에 옵티마이저 통계를 확인하고, 인덱스 및 쿼리의 복잡성을 고려하여 튜닝할 수 있는 다른 방법이 없는지 검토하는 것이 좋습니다. 또한 힌트를 사용할 때는 특정 버전의 오라클 데이터베이스에서의 동작을 이해하고 해당 버전의 문서를 참조하는 것이 중요합니다.

반응형