sql >> Databasteknik >  >> RDS >> Mysql

SQL SERVER 2016 – Jämföra exekveringsplaner

Nya verktyg ger nya möjligheter och ibland sitter dessa djupt ingrodda i produkten så att vi lätt kan missa dem. Och SQL Server 2016 är inte annorlunda. Efter att ha installerat CTP, blev jag glatt överraskad över att se detta tillägg för att hjälpa våra DBA:er som utför prestationsjusteringar och sökfrågor.

Så vad pratar jag om? Tänk på ett scenario där du gör någon form av testning i din QA-miljö. Du verkar felsöka ett produktionsscenario och fann att just det scenariot fungerade mycket bra i din testmiljö. Även om du har tagit data från produktionsdatabasen till test QA-servern för mindre än en månad sedan, är du fortfarande förbryllad över frågan – varför denna skillnad?

Nästa krav som alla tittar på är att börja jämföra exekveringsplanerna mellan din produktions- och testmiljö för samma fråga. Vissa av exekveringsplanerna på en produktionsserver kan ibland köras till sidor och är svåra att se skillnaden visuellt.

SQL Server 2016 – Planjämförelse

Om du har exekveringsplanen från din produktionsmiljö, fortsätt och öppna den i SQL Server 2016 Management Studio och högerklicka för att få följande alternativ:

Du kan se att det är ett intressant tillägg. "Jämför showplan" måste väljas. Välj nu planen som genererades från din testmiljö. Detta gör att båda utförandeplanerna visas sida vid sida som visas nedan. Titta på den lila färgen på noderna.

Detta representerar det faktum att båda noderna är samma men har vissa skillnader i vissa egenskaper. Nu är det upp till oss att högerklicka och ta fram egenskapsfliken.

Här kan vi gå vidare och jämföra var och en av nodegenskaperna för att hitta var diskrimineringen mellan planerna finns. Detta är fantastiska funktioner som lagts till i den nya versionen.

Jag är säker på att du kommer att hitta den här funktionen till stor nytta i frågejusteringsövningar i dina miljöer. Med det sagt, en sak som jag har sett intressant är att om du tar en live "Faktisk exekveringsplan" och sedan försöker jämföra den med en sparad .sqlplan-fil - kommer den att få ett fel som visas nedan:

Meddela mig om du skulle använda den här funktionen och om du har använt den här funktionen – vilka är några av förbättringarna du ville att den här jämförelseoperatören hade? Jag skulle definitivt vilja lära av dig.


  1. En översikt över ProxySQL-klustring i ClusterControl

  2. Hur ser man loggfiler i MySQL?

  3. Ansluter till Teradata i IRI Workbench

  4. SQLite JSON_GROUP_OBJECT()