sql >> Database teknologi >  >> RDS >> Mysql

SQL SERVER 2016 – Sammenligning af eksekveringsplaner

Nye værktøjer bringer nye muligheder, og nogle gange er disse rodfæstet dybt i produktet, så vi nemt kan gå glip af dem. Og SQL Server 2016 er ikke anderledes. Efter at have installeret CTP'en, blev jeg glædeligt overrasket over at se denne tilføjelse for at hjælpe vores DBA'er, der udfører ydelsesjustering og forespørgselsjusteringsaktiviteter.

Hvad taler jeg så om? Tænk på et scenarie, hvor du laver en form for test i dit QA-miljø. Du ser ud til at fejlfinde et produktionsscenarie og fandt ud af, at netop det scenarie fungerede meget godt i dit testmiljø. Selvom du har taget data fra produktionsdatabasen til test QA-serveren for mindre end en måned tilbage, er du stadig forvirret over spørgsmålet – hvorfor denne forskel?

Det næste krav, alle ser på, er at begynde at sammenligne udførelsesplanerne mellem dit produktions- og testmiljø for den samme forespørgsel. Nogle af udførelsesplanerne på en produktionsserver kan nogle gange køre til sider og er svære at finde forskel visuelt.

SQL Server 2016 – Plansammenligning

Hvis du har eksekveringsplanen fra dit produktionsmiljø, så gå videre og åbn den i SQL Server 2016 Management Studio og højreklik for at få følgende mulighed:

Du kan se, at det er en interessant tilføjelse. "Sammenlign showplan" skal vælges. Vælg nu den plan, der blev genereret fra dit testmiljø. Dette vil få begge udførelsesplanerne til at se side om side som vist nedenfor. Se på den lilla farve på noderne.

Dette repræsenterer det faktum, at begge noder er ens, men har nogle forskelle i nogle egenskaber. Nu er det op til os at højreklikke og hente fanen Egenskaber.

Her kan vi gå videre og sammenligne hver af nodeegenskaberne for at finde ud af, hvor forskellen mellem planerne er. Dette er fantastiske muligheder tilføjet i den nye version.

Jeg er sikker på, at du vil finde denne funktion til stor nytte i forespørgselsjusteringsøvelser i dine omgivelser. Når det er sagt, er en ting, jeg har set interessant, hvis du tager en live "Faktisk udførelsesplan" og derefter prøver at sammenligne den med en gemt .sqlplan-fil - den vil komme med en fejl som vist nedenfor:

Lad mig vide, om du vil bruge denne funktion, og om du har brugt denne funktion – hvad er nogle af de forbedringer, du ønskede, at denne sammenligningsoperatør havde? Jeg vil helt sikkert gerne lære af dig.


  1. Alt du behøver at vide om SQL CTE på ét sted

  2. Forbind SAP IQ til SQL Server

  3. COS() Funktion i Oracle

  4. PostgreSQL hvor alt er i array