계획 지침 삭제Delete a Plan Guide

SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 계획 지침을 삭제할 수 있습니다.You can delete (drop) a plan guide in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Transact-SQLTransact-SQL을 사용하여 데이터베이스에서 모든 계획 지침을 삭제할 수도 있습니다.Using Transact-SQLTransact-SQL, you can also delete all of the plan guides in a database.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

보안 Security

사용 권한 Permissions

OBJECT 계획 지침을 삭제하려면 계획 지침에서 참조되는 개체(예: 함수, 저장 프로시저)에 대한 변경 권한이 있어야 합니다.Deleting an OBJECT plan guide requires ALTER permission on the object (for example: function, stored procedure) that is referenced by the plan guide. 다른 모든 계획 지침에는 ALTER DATABASE 권한이 필요합니다.All other plan guides require ALTER DATABASE permission.

SQL Server Management Studio 사용 Using SQL Server Management Studio

계획 지침을 삭제하려면To delete a plan guide

  1. 더하기 기호를 클릭하여 계획 지침을 삭제할 데이터베이스를 확장한 다음 더하기 기호를 클릭하여 프로그래밍 기능 폴더를 확장합니다.Click the plus sign to expand the database in which you want to delete a plan guide, and then click the plus sign to expand the Programmability folder.

  2. 더하기 기호를 클릭하여 계획 지침 폴더를 확장합니다.Click the plus sign to expand the Plan Guides folder.

  3. 삭제할 계획 지침을 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.Right-click the plan guide you want to delete and select Delete.

  4. 개체 삭제 대화 상자에서 올바른 계획 지침을 선택했는지 확인한 다음 확인을 클릭합니다.In the Delete Object dialog box, ensure that the correct plan guide is selected and then click OK.

Transact-SQL 사용 Using Transact-SQL

단일 계획 지침을 삭제하려면To delete a single plan guide

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    --Create a procedure on which to define the plan guide.  
    IF OBJECT_ID(N'Sales.GetSalesOrderByCountry', N'P') IS NOT NULL  
        DROP PROCEDURE Sales.GetSalesOrderByCountry;  
    GO  
    CREATE PROCEDURE Sales.GetSalesOrderByCountry   
        (@Country nvarchar(60))  
    AS  
    BEGIN  
        SELECT *  
        FROM Sales.SalesOrderHeader AS h   
        INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID  
        INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID  
        WHERE t.CountryRegionCode = @Country;  
    END  
    GO  
    --Create the plan guide.  
    EXEC sp_create_plan_guide N'Guide3',  
        N'SELECT *  
        FROM Sales.SalesOrderHeader AS h   
        INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID  
        INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID  
        WHERE t.CountryRegionCode = @Country',  
        N'OBJECT',  
        N'Sales.GetSalesOrderByCountry',  
        NULL,  
        N'OPTION (OPTIMIZE FOR (@Country = N''US''))';  
    GO  
    --Drop the plan guide.  
    EXEC sp_control_plan_guide N'DROP', N'Guide3';  
    GO  
    

데이터베이스의 모든 계획 지침을 삭제하려면To delete all plan guides in a database

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    USE AdventureWorks2012;  
    GO  
    EXEC sp_control_plan_guide N'DROP ALL';  
    GO  
    

    자세한 내용은 sp_control_plan_guide(Transact-SQL)를 참조하세요.For more information, see sp_control_plan_guide (Transact-SQL).