새 계획 지침 만들기

SQL Server Management Studio 또는 Transact-SQL을 사용하여 2014년 SQL Server 계획 가이드를 만들 수 있습니다. 계획 지침은 쿼리 힌트나 정해진 쿼리 계획을 쿼리에 연결하여 쿼리 최적화에 영향을 미칩니다. 계획 지침에서 최적화하려는 Transact-SQL 문을 지정하고 사용할 쿼리 힌트가 들어 있는 OPTION 절이나 쿼리를 최적화하는 데 사용할 특정 쿼리 계획을 지정합니다. 쿼리가 실행되면 쿼리 최적화 프로그램은 Transact-SQL 문을 계획 가이드와 일치시키고 런타임에 OPTION 절을 쿼리에 연결하거나 지정된 쿼리 계획을 사용합니다.

항목 내용

시작하기 전에

제한 사항

  • sp_create_plan_guide 인수는 표시된 순서대로 제공해야 합니다. sp_create_plan_guide 매개 변수 값을 제공하는 경우 모든 매개 변수 이름을 명시적으로 지정하거나 모두 지정하지 않아야 합니다. 예를 들어 @name =을 지정한 경우 @stmt =, @type = 등도 지정해야 합니다. 마찬가지로 @name =을 생략하고 매개 변수 값만 제공한 경우 나머지 매개 변수 이름도 생략하고 해당 값만 제공해야 합니다. 인수 이름은 구문 이해를 위한 설명 용도로만 사용됩니다. SQL Server 지정된 매개 변수 이름이 이름이 사용되는 위치의 매개 변수 이름과 일치하는지 확인하지 않습니다.

  • 같은 쿼리 및 일괄 처리나 모듈에 대해 두 개 이상의 OBJECT 또는 SQL 계획 지침을 만들 수 있습니다. 그러나 지정된 시간에 한 개의 계획 지침만 사용할 수 있습니다.

  • 저장 프로시저, 함수 또는 WITH ENCRYPTION 절을 지정하거나 임시인 DML 트리거를 참조하는 @module_or_batch 값에 대해서는 OBJECT 유형의 계획 지침을 만들 수 없습니다.

  • 활성화 여부에 관계없이 계획 지침에서 참조하는 함수, 저장 프로시저 또는 DML 트리거를 삭제하거나 수정하려고 하면 오류가 발생합니다. 계획 지침에서 참조하는 트리거가 정의되어 있는 테이블을 삭제하려는 경우에도 오류가 발생합니다.

보안

사용 권한

OBJECT 유형의 계획 지침을 만들려면 참조된 개체에 ALTER 권한이 있어야 합니다. SQL 또는 TEMPLATE 유형의 계획 지침을 만들려면 현재 데이터베이스에 대한 ALTER 권한이 있어야 합니다.

SQL Server Management Studio 사용

계획 지침을 만들려면

  1. 더하기 기호를 클릭하여 계획 지침을 만들 데이터베이스를 확장한 다음 더하기 기호를 클릭하여 프로그래밍 기능 폴더를 확장합니다.

  2. 계획 지침 폴더를 마우스 오른쪽 단추로 클릭하고 새 계획 가이드...를 선택합니다.

  3. 새 계획 지침 대화 상자의 이름 입력란에 계획 지침 이름을 입력합니다.

  4. 상자에 계획 가이드를 적용할 Transact-SQL 문을 입력합니다.

  5. 범위 유형 목록에서 Transact-SQL 문이 표시되는 엔터티 유형을 선택합니다. Transact-SQL 문을 계획 가이드와 일치시키는 컨텍스트를 지정합니다. 가능한 값은 OBJECT, SQLTEMPLATE입니다.

  6. 범위 일괄 처리 상자에 Transact-SQL 문이 표시되는 일괄 처리 텍스트를 입력합니다. 일괄 처리 텍스트는 USE``database 문을 포함할 수 없습니다. 범위 일괄 처리 입력란은 SQL 이 범위 유형으로 선택되어 있는 경우에만 사용할 수 있습니다. 범위 유형이 SQL인 경우 범위 일괄 처리 입력란에 아무 것도 입력하지 않으면 일괄 처리 텍스트 값은 입력란의 값과 동일한 값으로 설정됩니다.

  7. 범위 스키마 이름 목록에 개체가 포함되는 스키마의 이름을 입력합니다. 범위 스키마 이름 입력란은 개체 가 범위 유형으로 선택되어 있는 경우에만 사용할 수 있습니다.

  8. 범위 개체 이름 상자에 Transact-SQL 저장 프로시저, 사용자 정의 스칼라 함수, 다중 상태 테이블 반환 함수 또는 Transact-SQL 문이 표시되는 DML 트리거의 이름을 입력합니다. 범위 개체 이름 입력란은 개체 가 범위 유형으로 선택되어 있는 경우에만 사용할 수 있습니다.

  9. 매개 변수 상자에 Transact-SQL 문에 포함된 모든 매개 변수의 매개 변수 이름 및 데이터 형식을 입력합니다.

    매개 변수는 다음 중 하나에 해당하는 경우에만 적용됩니다.

    • 범위 유형이 SQL 또는 TEMPLATE인 경우. TEMPLATE일 경우 매개 변수는 NULL일 수 없습니다.

    • Transact-SQL 문은 sp_executesql 사용하여 제출되고 매개 변수에 대한 값이 지정되거나 매개 변수를 매개 변수화한 후 SQL Server 내부적으로 문을 제출합니다.

  10. 힌트 상자에 Transact-SQL 문에 적용할 쿼리 힌트 또는 쿼리 계획을 입력합니다. 하나 이상의 쿼리 힌트를 지정하려면 유효한 OPTION 절을 입력합니다.

  11. 확인을 클릭합니다.

Transact-SQL 사용

계획 지침을 만들려면

  1. 개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.

    -- creates a plan guide named Guide1 based on a SQL statement  
    EXEC sp_create_plan_guide   
        @name = N'Guide1',   
        @stmt = N'SELECT TOP 1 *   
                  FROM Sales.SalesOrderHeader   
                  ORDER BY OrderDate DESC',   
        @type = N'SQL',  
        @module_or_batch = NULL,   
        @params = NULL,   
        @hints = N'OPTION (MAXDOP 1)';  
    
    

자세한 내용은 sp_create_plan_guide(Transact-SQL)를 참조하세요.