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í na:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (dedicated SQL pool only)
SQL analytics endpoint v Microsoft Fabric
Sklad v Microsoft Fabric
SQL databáze v Microsoft Fabric
Způsobí, že SQL Server nespustí Transact-SQL příkazy. Místo toho SQL Server vrátí podrobné informace o tom, jak se příkazy budou spouštět ve formě dobře definovaného dokumentu XML.
Syntax
SET SHOWPLAN_XML { ON | OFF }
Poznámky
Nastavení SHOWPLAN_XML SET je nastaveno při spuštění nebo spuštění, nikoli v době analýzy.
Pokud je SHOWPLAN_XML SET ZAPNUTO, SQL Server vrátí informace o plánu spuštění pro každý příkaz bez jeho provedení a Transact-SQL příkazy se nespustí. Po nastavení této možnosti se informace o plánu provádění o všech následných příkazech Transact-SQL vrátí, dokud není možnost vypnutá. Pokud je například příkaz CREATE TABLE spuštěn, zatímco SET SHOWPLAN_XML je ZAPNUTO, SQL Server vrátí chybovou zprávu z následného příkazu SELECT zahrnujícího stejnou tabulku; zadaná tabulka neexistuje. Následné odkazy na tuto tabulku proto selžou. Když je funkce SET SHOWPLAN_XML vypnutá, SQL Server spustí příkazy bez generování sestavy.
SET SHOWPLAN_XML je určen k vrácení výstupu jako nvarchar(max) pro aplikace, jako je nástroj sqlcmd, kde výstup XML následně používá jiné nástroje k zobrazení a zpracování informací plánu dotazu.
Poznámka
Zobrazení dynamické správy, sys.dm_exec_query_plan, vrátí stejné informace jako SET SHOWPLAN XML v xml datovém typu. Tyto informace se vrátí ze sloupce query_plansys.dm_exec_query_plan. Další informace naleznete v tématu sys.dm_exec_query_plan (Transact-SQL).
V uložené proceduře nelze zadat SHOWPLAN_XML SET. Musí to být jediný příkaz v dávce.
SET SHOWPLAN_XML vrátí informace jako sadu dokumentů XML. Každá dávka po příkazu SET SHOWPLAN_XML ON se projeví ve výstupu jediným dokumentem. Každý dokument obsahuje text příkazů v dávce následovaný podrobnostmi o krocích provádění. Dokument ukazuje odhadované náklady, počet řádků, přístupové indexy a typy provedených operátorů, pořadí spojení a další informace o plánech provádění.
Poznámka
Pokud zahrnout skutečný plán provádění je vybrán v aplikaci SQL Server Management Studio, tato možnost SET nevygeneruje výstup xml showplan. Před použitím této možnosti SET vymažte tlačítko Zahrnout skutečný plán provádění.
Odhadované plány provádění prostřednictvím SSMS a SET SHOWPLAN_XML jsou dostupné pro vyhrazené fondy SQL (dříve SQL DW) a vyhrazené fondy SQL ve službě Azure Synapse Analytics. Pokud chcete načíst skutečný plán provádění pro vyhrazené fondy SQL (dříve SQL DW) a vyhrazené fondy SQL ve službě Azure Synapse Analytics, existují různé příkazy. Další informace najdete v tématu Monitorování úloh vyhrazeného fondu SQL služby Azure Synapse Analytics pomocí zobrazení dynamické správy.
Umístění výstupu SHOWPLAN
Dokument obsahující schéma XML pro výstup XML pomocí set SHOWPLAN_XML se zkopíruje během instalace do místního adresáře v počítači, na kterém je nainstalován Microsoft SQL Server. Dokument najdete na jednotce obsahující instalační soubory SQL Serveru v cestě podobné této:
\Microsoft SQL Server\130\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
V předchozí cestě používá 130\ uzlu SQL Server 2016. Číslo 130 je odvozeno od prvního uzlu hodnoty vrácené SELECT @@VERSION, což je 13. Pro SQL Server 2017 by cesta používala 140\, protože první uzel jeho @@VERSION hodnota je 14. SQL Server 2019 první hodnota z @@VERSION je 15. SQL Server 2022 první hodnota z @@VERSION je 16.
Schéma Showplan lze nalézt také na schémat XML microsoft SQL Serveru.
Dovolení
Chcete-li použít sadu SET SHOWPLAN_XML, musíte mít dostatečná oprávnění ke spuštění příkazů, na kterých se spouští SHOWPLAN_XML SET, a musíte mít oprávnění SHOWPLAN pro všechny databáze obsahující odkazované objekty.
Pro příkazy SELECT, INSERT, UPDATE, DELETE, EXEC *stored_procedure*a EXEC *user_defined_function*, aby uživatel vytvořil plán Showplan, musí:
Mít příslušná oprávnění ke spuštění příkazů Transact-SQL.
Mít oprávnění SHOWPLAN pro všechny databáze obsahující objekty odkazované příkazy Transact-SQL, jako jsou tabulky, zobrazení atd.
Pro všechny ostatní příkazy, jako je DDL, USE *database_name*, SET, DECLARE, dynamické SQL atd., jsou potřeba pouze příslušná oprávnění ke spuštění Transact-SQL příkazů.
Příklady
Dva příkazy, které následují, používají nastavení SET SHOWPLAN_XML k zobrazení způsobu, jakým SQL Server analyzuje a optimalizuje použití indexů v dotazech.
První dotaz používá relační operátor Equals (=) v klauzuli WHERE indexovaného sloupce. Druhý dotaz používá operátor LIKE v klauzuli WHERE. To vynutí SQL Server použít kontrolu clusterovaného indexu a najít data, která splňují podmínku klauzule WHERE. Hodnoty v EstimateRows a atributech EstimatedTotalSubtreeCost jsou menší pro první indexovaný dotaz, což znamená, že se zpracovává mnohem rychleji a používá méně prostředků než neindexovaný dotaz.
USE AdventureWorks2022;
GO
SET SHOWPLAN_XML ON;
GO
-- First query.
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET SHOWPLAN_XML OFF;
Další kroky
- příkazy
SET (Transact-SQL) - zobrazení odhadovaného plánu provádění