개발노트

18. [MS- SQL] 인덱스 힌트 (인덱스 사용 강제하기) 본문

DB/MS-SQL

18. [MS- SQL] 인덱스 힌트 (인덱스 사용 강제하기)

mroh1226 2024. 6. 5. 16:21
반응형

인덱스 힌트(index hint)

  • 옵티마이저가 의도된 인덱스를 타지 않는다면 직접 지정해주는 방법입니다.
    (하지만, 옵티마이저를 따르는 것이 좋음)
  • SQL 쿼리에서 특정 인덱스를 사용하도록 지시하는 것을 "인덱스 힌트(index hint)"라고 합니다.
  • 이는 SQL 옵티마이저가 자동으로 선택한 인덱스 대신 특정 인덱스를 사용하도록 강제할 때 유용합니다.
  • 다음은 SQL Server에서 사용되는 인덱스 힌트의 예시입니다.
SELECT column1, column2
FROM table_name WITH (INDEX (index_name))
WHERE condition;

  • 위의 쿼리에서 table_name은 조회할 테이블의 이름, column1, column2는 반환할 열의 이름, index_name은 사용할 인덱스의 이름을 나타냅니다. condition은 쿼리에서 사용되는 조건입니다.
  • 예를 들어, Orders 테이블에서 CustomerID 컬럼을 사용하여 조회를 수행하고자 한다면 다음과 같은 쿼리를 사용할 수 있습니다.
SELECT *
FROM Orders WITH (INDEX (IX_Orders_CustomerID))
WHERE CustomerID = 123;

  • 위의 예제에서 IX_Orders_CustomerID는 사용하려는 인덱스의 이름입니다.
  • 이 쿼리를 실행하면 옵티마이저가 해당 인덱스를 사용하여 조회를 수행하게 됩니다.
  • 인덱스 힌트는 주로 옵티마이저가 적절한 인덱스를 선택하지 못하는 경우에만 사용해야 합니다.
  • 즉, 인덱스를 직접 지정할 필요가 있는 경우에만 사용해야 합니다.
  • 가능하면 SQL 옵티마이저에게 인덱스 선택을 맡기는 것이 좋습니다.
반응형
Comments