방법: 계획 지침 만들기(SQL Server Management Studio)
이 항목에서는 SQL Server Management Studio를 사용하여 계획 지침을 만드는 방법에 대해 설명합니다. 계획 지침은 쿼리 힌트나 정해진 쿼리 계획을 쿼리에 연결하여 쿼리 최적화에 영향을 미칩니다. 계획 지침에서 최적화하려는 Transact-SQL 문을 지정하고 사용할 쿼리 힌트가 들어 있는 OPTION 절이나 쿼리를 최적화하는 데 사용할 특정 쿼리 계획을 지정합니다. 쿼리가 실행하면 쿼리 최적화 프로그램이 Transact-SQL 문을 계획 지침과 비교하여 런타임에 쿼리에 OPTION 절을 추가하거나 지정된 쿼리 계획을 사용합니다.
다음 예에서는Transact-SQL 문에 대한 계획 지침을 만들고 이 문에 FORCESEEK 쿼리 힌트를 적용합니다. 이 쿼리 힌트는 최적화 프로그램이 Index Seek 연산을 사용하여 지정된 테이블에 있는 데이터에 액세스하도록 합니다.
계획 지침 예를 만들려면
개체 탐색기에서 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.
데이터베이스를 확장하고 AdventureWorks 데이터베이스를 확장한 다음 프로그래밍 기능을 확장합니다.
계획 지침을 마우스 오른쪽 단추로 클릭한 다음 새 계획 지침을 클릭합니다.
이름에 계획 지침의 이름으로 ForceseekPlan을 입력합니다.
문에 다음 Transact-SQL 문을 입력합니다. 이 문은 계획 지침이 적용되는 문입니다.
SELECT c.LastName, c.FirstName, HumanResources.Employee.Title FROM HumanResources.Employee JOIN Person.Contact AS c ON HumanResources.Employee.ContactID = c.ContactID WHERE HumanResources.Employee.ManagerID = 3 ORDER BY c.LastName, c.FirstName;
범위 유형에서 Transact-SQL 문이 나타나는 엔터티 유형으로 SQL을 선택합니다.
힌트에 다음 OPTION 절을 입력합니다.
OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))
확인을 클릭하여 계획 지침을 만듭니다.
계획 지침이 쿼리와 일치하는지 확인하려면
SQL Server Profiler 추적을 시작하고 성능 노드 아래에 있는 Plan Guide Successful 및 Plan Guide Unsuccessful 이벤트 유형을 선택합니다.
이전 절차의 5단계에서 제공한 쿼리를 실행합니다.
SQL Server Profiler 추적을 일시 중지합니다.
해당 쿼리에 대한 Plan Guide Successful 이벤트를 찾습니다.
계획 지침을 응용 프로그램과 일치시킬 수 없는 경우 쿼리는 계획 지침 문에 지정된 것과 문자 수준까지 같은 형식으로 제공되어야 합니다. 여기에는 탭, 공백, 캐리지 리턴 또는 줄 바꿈도 포함됩니다.