진지한 개발자

SQL Hint 본문

SQL/SQLP

SQL Hint

제이_엔 2024. 2. 14. 15:03
728x90

SQL Hint

옵티마이저에게 쿼리 실행 계획을 제어하거나 제안하는 데 사용됨

주요 SQL 힌트의 종류

  • /*+ INDEX (table_name index_name) */: 해당 인덱스를 사용하여 쿼리를 실행하도록 강제합니다.
SELECT /*+ INDEX (employees idx_emp_id) */ employee_name
FROM employees
WHERE employee_id = 100;
  • /*+ FULL(table_name) */: 풀 테이블 스캔을 수행하도록 합니다.
SELECT /*+ FULL(employees) */ employee_name
FROM employees;
  • /*+ HASH_JOIN, MERGE_JOIN, NESTED_LOOP */: 조인 방법을 지정합니다.
SELECT /*+ HASH_JOIN(departments) */ employee_name, department_name
FROM employees, departments
WHERE employees.department_id = departments.department_id;
  • /*+ ORDERED */: 조인 순서를 강제합니다.
SELECT /*+ ORDERED(employees, departments) */ employee_name, department_name FROM employees, departments WHERE employees.department_id = departments.department_id;
  • /*+ USE_CONCAT */: 여러 인덱스를 사용하여 결과를 연결합니다.
SELECT /*+ USE_CONCAT(employees idx_emp_id, employees idx_emp_name) */ employee_name
FROM employees
WHERE employee_id = 100;
  • /*+ NO_INDEX */: 인덱스 사용을 방지합니다.
SELECT /*+ NO_INDEX(employees) */ employee_name FROM employees WHERE employee_id = 100;
  • /*+ LEADING(table_name) */: 조인 순서의 첫 번째 테이블을 지정합니다.
  • /*+ MATERIALIZE */: 중간 결과를 임시 테이블에 저장합니다.
  • /*+ FIRST_ROWS(n) */: 최초 n개의 결과를 빠르게 반환하도록 합니다.
  • /*+ ALL_ROWS */: 모든 결과를 반환하도록 합니다.
728x90

'SQL > SQLP' 카테고리의 다른 글

튜닝 실전(작업중)  (0) 2024.02.14