Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Procedura uložená sp_control_plan_guide v systému slouží k odstranění, povolení nebo deaktivaci plánového průvodce.
Syntaxe
sp_control_plan_guide
[ @operation = ] { N'DROP [ ALL ]' | N'DISABLE [ ALL ]' | N'ENABLE [ ALL ]' }
[ , [ @name = ] N'name' ]
[ ; ]
Arguments
[ @name = ] N'jméno'
Specifikuje plán, který je zrušen, aktivován nebo zakázán.
@name je sysname s výchozím nastavením NULL.
@name je vyřazen do aktuální databáze. Pokud není specifikováno, @name výchozí .NULL
[ @operation = ] { N'DROP [ VŠICHNI ]' | N'DISABLE [ VŠECHNY ]' | N'ENABLE [ ALL ]' }
Operace provedená podle plánu uvedeného v @name. @operation je nvarchar(60), bez výchozího nastavení.
DROPZruší plán podle @name. Po vydání plánového průvodce nejsou budoucí provedení dotazu, který byl dříve odpovídán plánovacím průvodcem, ovlivněny tímto průvodcem.
DROP ALLVšechny plánovací průvodce jsou v aktuální databázi. @name nelze specifikovat, kdy
DROP ALLje specifikován.DISABLEVypíná plánovací průvodce specifikovaný @name. Po deaktivaci plánového průvodce nejsou budoucí provedení dotazu, který byl dříve odpovídán plánovacím průvodcem, ovlivněna plánovacím průvodcem.
DISABLE ALLVypíná všechny plánovací průvodce v aktuální databázi. @name nelze specifikovat, kdy
DISABLE ALLje specifikován.ENABLEUmožňuje plánovací průvodce specifikovaný @name. Průvodce plánem lze po jeho zapnutí spojit s vhodným dotazem. Ve výchozím nastavení jsou průvodce plány povoleny v době jejich vytvoření.
ENABLE ALLAktivuje všechny plánovací průvodce v aktuální databázi. @name nelze specifikovat, kdy
ENABLE ALLje specifikován.
Poznámky
Při pokusu o vyřazení nebo úpravu funkce, uložené procedury nebo triggeru DML, na který odkazuje průvodce plánem, který je povolený nebo zakázaný, dojde k chybě.
Vypnutí průvodce deaktivovaným plánem nebo zapnutí povoleného plánu nemá žádný efekt a běží bez chyb.
Plánovací průvodce nejsou dostupné ve všech edicích SQL Serveru. Seznam funkcí podporovaných edicemi SQL Serveru najdete v tématu Edice a podporované funkce systému SQL Server 2022. Nicméně můžete spustit sp_control_plan_guide možnost DROP nebo DROP ALL v jakékoli edici SQL Serveru.
Povolení
Provádění sp_control_plan_guide plánového průvodce typu OBJECT (vytvořeného specifikujícího @type = '<object>') vyžaduje ALTER povolení k objektu, na který se plán odkazuje. Všechny ostatní průvodce plány vyžadují ALTER DATABASE povolení.
Examples
A. Povolte, vypněte a zrušte plán
Následující příklad vytvoří plánovací průvodce, deaktivuje ho, povolí a následně ho zruší.
--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.
EXECUTE 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
--Disable the plan guide.
EXECUTE sp_control_plan_guide N'DISABLE',
N'Guide3';
GO
--Enable the plan guide.
EXECUTE sp_control_plan_guide N'ENABLE',
N'Guide3';
GO
--Drop the plan guide.
EXECUTE sp_control_plan_guide N'DROP',
N'Guide3';
GO
B. Vypněte všechny plánovací průvodce v aktuální databázi
Následující příklad deaktivuje všechny plánovací průvodce v databázi AdventureWorks2025 .
USE AdventureWorks2022;
GO
EXECUTE sp_control_plan_guide N'DISABLE ALL';
Související obsah
- uložené procedury databázového stroje (Transact-SQL)
- uložené procedury systému (Transact-SQL)
- sp_create_plan_guide (Transact-SQL)
- sys.plan_guides (Transact-SQL)
- Průvodci plánem