Jämför körningsplaner
gäller för:SQL Server
I det här avsnittet beskrivs hur du jämför likheter och skillnader mellan faktiska grafiska körningsplaner med hjälp av SQL Server Management Studio Plan Comparison-funktionen. Den här funktionen är tillgänglig från och med SQL Server Management Studio v16.
Anteckning
Faktiska körningsplaner genereras efter att Transact-SQL frågor eller batchar har körts. På grund av detta innehåller en faktisk körningsplan körningsinformation, till exempel faktiskt antal rader, resursanvändningsmått och körningsvarningar (om sådana finns). Mer information finns i Visa en verklig körningsplan.
Möjligheten att jämföra planer är något som databasproffs kan behöva göra av felsökningsskäl:
- Ta reda på varför en fråga eller batch plötsligt saktade ner.
- Förstå effekten av en frågeomskrivning.
- Observera hur en specifik prestandaförbättrande ändring som introducerades i schemadesignen (till exempel ett nytt index) effektivt har ändrat körningsplanen.
Menyalternativet planjämförelse gör det möjligt att jämföra två olika körningsplaner sida vid sida för enklare identifiering av likheter och ändringar som förklarar de olika beteendena av alla orsaker som anges ovan. Det här alternativet kan jämföras mellan:
- Två tidigare sparade körningsplanfiler (.sqlplan-tillägget).
- En aktiv körningsplan och en tidigare sparad frågekörningsplan.
- Två valda frågeplaner i Query Store.
Tips
Planjämförelse fungerar med alla .sqlplan- filer, även från äldre versioner av SQL Server. Med det här alternativet kan du dessutom jämföra offline, så du behöver inte vara ansluten till en SQL Server-instans.
När två exekveringsplaner jämförs markeras regioner i planen som gör i stort sett samma i samma färg och mönster. Om du klickar på en färgad region i en plan centreras den andra planen på den matchande noden i planen. Du kan fortfarande jämföra omatchade operatorer och noder i körningsplanerna, men i så fall måste du välja de operatorer som ska jämföras manuellt.
Viktig
Endast noder som anses ändra planens form används för att söka efter likheter. Därför kan det finnas en nod som inte är färgad i mitten av två noder som finns i samma underavsnitt av planen. Bristen på färg i det här fallet innebär att noderna inte beaktades vid kontroll av om avsnitten är lika.
Så här jämför du körningsplaner
Öppna en tidigare sparad frågekörningsplanfil (.sqlplan) med hjälp av menyn File och klicka på Öppna fileller dra en planfil till Management Studio-fönstret. Om du precis har kört en fråga och valt att visa dess exekveringsplan, gå till fliken Exekveringsplan i resultatfönstret.
Högerklicka i ett tomt område i körningsplanen och välj Jämför Showplan.
Välj den andra frågeplansfilen som du vill jämföra med. Den andra filen öppnas så att du kan jämföra planerna.
De jämförde planerna öppnar som standard ett nytt fönster med ett överst och ett längst ned. Standardvalet är den första förekomsten av en operator eller nod som är vanlig i de jämförde planerna, men som visar skillnader mellan planer. Alla markerade operatorer och noder finns i båda jämförda planer. Om du väljer en markerad operator i de övre eller vänstra planerna väljs automatiskt motsvarande operator i de nedre eller högra planerna. Om du väljer rotnodsoperatorn i någon av de jämförde planerna (SELECT-noden i bilden nedan) väljs även respektive rotnodsoperator i den andra jämförd planen.
Tips
Du kan växla visningen av körningsplanens jämförelse till sida vid sida genom att högerklicka på ett tomt område i körningsplanen och välja Växla delningsorientering.
Tips
Alla alternativ för zoomning och navigering som är tillgängliga för exekveringsplaner fungerar i planjämförelseläge. Mer information finns i Visa en verklig körningsplan.
Ett fönster med dubbla egenskaper öppnas också till höger inom området för standardvalet. Egenskaper som finns i båda de jämförda operatorerna men som har skillnader föregås av olikhetstecknet ≠ för enklare identifiering.
Jämförelsenavigeringsfönstret Showplan Analysis öppnas också längst ned. Det finns tre flikar:
- På fliken -instruktionsalternativ är standardvalet Markera liknande åtgärder och samma markerade operator eller nod i jämförda planer delar samma färg och linjemönster. Navigera mellan liknande områden i jämförd plan genom att klicka på ett kalkmönster. Du kan också välja att markera skillnader i planer snarare likheter genom att välja Markera åtgärder som inte matchar liknande segment.
Anteckning
Som standard ignoreras databasnamn när planer jämförs för att tillåta jämförelse av planer som har samlats in för databaser som har olika namn, men som delar samma schema. När du till exempel jämför planer från databaser ProdDB och TestDB. Alternativet Ignorera databasnamn när du jämför operatorer kan ändra detta beteende.
Fliken Multi Statement är användbar när du jämför planer med flera uttalanden genom att låta rätt par av uttalanden jämföras.
På fliken Scenarier hittar du en automatiserad analys av några av de mest relevanta aspekterna att titta på när det gäller skillnader i kardinalitetsuppskattning i de jämförda planerna. För varje operator i det vänstra fönstret visas information om scenariot i Klicka här om du vill ha mer information om det här scenariot-länken, och möjliga orsaker till scenariot listas.
Om det här fönstret är stängt, högerklicka på ett tomt område i en jämförelseplan och välj Visa jämförelsealternativ för att öppna igen.
Så här jämför du körningsplaner i Query Store
I Query Store identifierar man en frågeställning som har mer än en körningsplan. Mer information om scenarier för Query Store finns i Användningsscenarier för Query Store.
Använd en kombination av SKIFT-tangenten och musen för att välja två planer för samma fråga.
Använd knappen Jämför planerna för select-frågan i ett separat fönster för att starta en planjämförelse. Sedan är steg 4 till 6 i för att jämföra körningsplaner tillämpliga.