계획 지침에 쿼리 힌트 연결
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
유효한 쿼리 힌트의 조합은 계획 지침에서 사용할 수 있습니다. 계획 지침이 쿼리와 일치하면 컴파일 및 최적화하기 전에 계획 지침의 힌트 절에 지정된 OPTION 절이 쿼리에 추가됩니다. 계획 지침과 일치하는 쿼리에 OPTION 절이 이미 있는 경우 계획 지침에 지정된 쿼리 힌트가 쿼리의 쿼리 힌트로 바뀝니다. 그러나 OPTION 절이 이미 있는 쿼리와 일치하는 계획 지침의 경우 sp_create_plan_guide 문에 일치시킬 쿼리 텍스트를 지정할 때 쿼리의 OPTION 절을 포함해야 합니다. 계획 지침에 지정된 힌트를 쿼리에 이미 있는 힌트에 추가하려면 해당 힌트를 바꾸는 대신 계획 지침의 OPTION 절에 원래 힌트와 추가 힌트를 모두 지정해야 합니다.
주의
쿼리 힌트를 오용하는 계획 지침을 사용하면 컴파일, 실행 또는 성능 문제가 발생할 수 있습니다. 계획 지침는 숙련된 개발자 및 데이터베이스 관리자만 사용해야 합니다.
계획 지침에 사용되는 일반적인 쿼리 힌트
계획 지침의 이점을 얻을 수 있는 쿼리는 일반적으로 매개 변수 기반이며 매개 변수 값이 최악의 경우 또는 가장 대표적인 시나리오를 나타내지 않는 캐시된 쿼리 계획을 사용하기 때문에 성능이 저조할 수 있습니다. OPTIMIZE FOR 및 RECOMPILE 쿼리 힌트를 사용하여 이 문제를 해결할 수 있습니다. OPTIMIZE FOR는 쿼리가 최적화될 때 매개 변수에 특정 값을 사용하도록 SQL Server에 지시합니다. RECOMPILE은 실행 후 쿼리 계획을 삭제하도록 서버에 지시하여 쿼리 최적화 프로그램이 다음에 동일한 쿼리를 실행할 때 새 쿼리 계획을 다시 컴파일하도록 합니다. 예제를 보려면 계획 지침을 참조하세요.
또한 INDEX, FORCESCAN 및 FORCESEEK 테이블 힌트를 쿼리 힌트로 지정할 수 있습니다. 쿼리 힌트로 지정할 경우 이러한 힌트는 인라인 테이블이나 뷰 힌트처럼 동작합니다. INDEX 힌트는 쿼리 최적화 프로그램이 지정된 인덱스만 사용하여 참조된 테이블 또는 보기의 데이터에 액세스하도록 강제합니다. FORCESEEK 힌트는 최적화 프로그램이 인덱스 검색 작업만 사용하여 참조된 테이블 또는 보기의 데이터에 액세스하도록 강제합니다. 이러한 힌트는 추가 계획 지침 기능을 제공하며 계획 지침를 사용하는 쿼리 최적화에 더 많은 영향을 줄 수 있습니다.