Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (dedicated SQL pool only)
SQL analytics endpoint a Microsoft Fabric-ben
Raktár a Microsoft Fabric-ben
SQL adatbázis a Microsoft Fabric-ben
Az SQL Server nem hajt végre Transact-SQL utasításokat. Ehelyett az SQL Server részletes információkat ad vissza arról, hogy az utasítások hogyan lesznek végrehajtva egy jól definiált XML-dokumentum formájában.
Transact-SQL szintaxis konvenciói
Szintaxis
SET SHOWPLAN_XML { ON | OFF }
Megjegyzések
A SET SHOWPLAN_XML beállítása végrehajtáskor vagy futtatáskor van beállítva, és nem elemzési időpontban.
Amikor SET SHOWPLAN_XML ON, SQL Server minden utasításra végrehajtási terv információt ad vissza anélkül, hogy végrehajtaná, és Transact-SQL utasítások nem kerülnek végrehajtásra. Ha be van kapcsolva a beállítás, a rendszer az összes további Transact-SQL utasítással kapcsolatos végrehajtási tervadatokat adja vissza, amíg a beállítás ki nem van kapcsolva. Például, ha egy CREATE TABLE utasítást BEKAPCSOLVA SETSET SHOWPLAN_XML hajtanak végre, az SQL Server hibáüzenetet ad vissza egy későbbi SELECT utasításból, amely ugyanazt a táblát érinti; a megadott tábla nem létezik. Ezért a tábla későbbi hivatkozásai sikertelenek. Amikor SET SHOWPLAN_XML KIKAPCSOLVA, az SQL Server lefuttatja az utasításokat anélkül, hogy jelentést generálna.
SET SHOWPLAN_XML célja, hogy nvarchar(max) formátumban térjen vissza olyan alkalmazásokhoz, mint a SQLCMD segédeszköz, ahol az XML kimenetet később más eszközök használják a lekérdezési terv információinak megjelenítésére és feldolgozására.
Jegyzet
A dinamikus menedzsment nézet, sys.dm_exec_query_plan, ugyanazt az információt adja vissza, mint SET a SHOWPLAN XML xml adattípusban. Ezt az információt a rendszer a query_plansys.dm_exec_query_plan oszlopából adja vissza. További információ: sys.dm_exec_query_plan (Transact-SQL).
SET SHOWPLAN_XML nem lehet definiálni egy tárolt eljárásban. Ez lehet a köteg egyetlen utasítása.
SET SHOWPLAN_XML XML dokumentumokból álló halmazként adja vissza az információt. Az ON utasítás után minden tétel SET SHOWPLAN_XML egyetlen dokumentumban jelenik meg a kimeneten. Minden dokumentum tartalmazza a kötegben lévő utasítások szövegét, majd a végrehajtási lépések részleteit. A dokumentum a becsült költségeket, a sorok számát, a elért indexeket és az elvégzett operátorok típusait, az illesztési sorrendet és a végrehajtási tervekkel kapcsolatos további információkat jeleníti meg.
Jegyzet
Ha az SQL Server Management Studio-ban a Include Actual Execution Plan opciót választják, ez SET az opció nem eredményez XML Showplan kimenetet. Töröld a Tényleges Végrehajtási Terv gombot , mielőtt ezt SET a lehetőséget használnád.
Becsült végrehajtási tervek SSMS-en keresztül, és SET SHOWPLAN_XML dedikált SQL poolokra (korábban SQL DW) és dedikált SQL poolokra is elérhetők az Azure Synapse Analytics-ben. A dedikált SQL-készletek (korábbi nevén SQL DW) és a dedikált SQL-készletek tényleges végrehajtási tervének lekéréséhez az Azure Synapse Analyticsben különböző parancsok érhetők el. További információ: Dedikált Azure Synapse Analytics SQL-készlet számítási feladatainak monitorozása DMV-khasználatával.
A SHOWPLAN-kimenet helye
Az XML kimenethez SET SHOWPLAN_XML tartozó XML sémát tartalmazó dokumentumot a beállítás során másolják egy helyi könyvtárba azon a számítógépen, amelyen a Microsoft SQL Server telepítve van. A dokumentum az SQL Server telepítési fájljait tartalmazó meghajtón található, az alábbihoz hasonló elérési úton:
\Microsoft SQL Server\130\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
Az előző útvonalon az SQL Server 2016 használja a csomópont 130\. A 130 szám a SELECT @@VERSIONáltal visszaadott érték első csomópontjából származik, ami 13. Az SQL Server 2017 esetében az elérési út 140\használna, mivel az @@VERSION értékének első csomópontja 14. Az SQL Server 2019 @@VERSION első értéke 15. AZ SQL Server 2022 @@VERSION első értéke 16.
A Showplan séma Microsoft SQL Server XML-sémák.
Engedélyek
Ahhoz, hogy SETSET SHOWPLAN_XMLhasználhasd, elegendő jogosultsággal kell rendelkezned a végrehajtott utasítások SETSET SHOWPLAN_XML végrehajtásához, és SHOWPLAN engedélyt kell kell tartalmazni minden hivatkozási objektumot tartalmazó adatbázishoz.
A SELECT, INSERT, UPDATE, DELETE, EXEC *stored_procedure*és EXEC *user_defined_function* utasításhoz a felhasználónak a következőnek kell lennie:
Rendelkezik a megfelelő engedélyekkel a Transact-SQL utasítások végrehajtásához.
RENDELKEZik SHOWPLAN-engedéllyel minden olyan adatbázisra, amely a Transact-SQL utasítások által hivatkozott objektumokat tartalmaz, például táblákat, nézeteket stb.
Az összes többi utasításhoz( például DDL, USE *database_name*, SET, DECLARE, dinamikus SQL stb.) csak a Transact-SQL utasítások végrehajtásához szükséges engedélyek szükségesek.
Példák
A következő két állítás a SET SHOWPLAN_XML beállításokat arra használja, hogy bemutassa, hogyan elemzi és optimalizálja az SQL Server az indexek lekérdezésekben történő használatát.
Az első lekérdezés egy indexelt oszlop WHERE záradékában az Egyenlőség összehasonlító operátort (=) használja. A második lekérdezés a WHERE záradék LIKE operátorát használja. Ez arra kényszeríti az SQL Servert, hogy fürtözött indexvizsgálatot használjon, és keresse meg a WHERE záradék feltételének megfelelő adatokat. A EstimateRows és a EstimatedTotalSubtreeCost attribútumok értéke kisebb az első indexelt lekérdezésnél, ami azt jelzi, hogy a lekérdezés feldolgozása sokkal gyorsabban történik, és kevesebb erőforrást használ, mint a nem indexelt lekérdezés.
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;
Következő lépések
- SET Utasítások (Transact-SQL)
- a becsült végrehajtási terv megjelenítése