sql >> Database >  >> RDS >> Mysql

SQL SERVER 2016 – Uitvoeringsplannen vergelijken

Nieuwe tools brengen nieuwe mogelijkheden met zich mee en soms zijn deze zo diep in het product geworteld dat we ze gemakkelijk over het hoofd kunnen zien. En SQL Server 2016 is niet anders. Na het installeren van de CTP was ik aangenaam verrast om deze toevoeging te zien om onze DBA's te helpen die bezig zijn met het afstemmen van prestaties en het afstemmen van zoekopdrachten.

Dus waar heb ik het over? Denk aan een scenario waarin u een soort van testen doet in uw QA-omgeving. U lijkt problemen met een productiescenario op te lossen en ontdekte dat dat scenario heel goed werkte in uw testomgeving. Hoewel u de gegevens van de productiedatabase minder dan een maand geleden naar de QA-testserver hebt gebracht, staat u nog steeds versteld van de vraag:waarom dit verschil?

De volgende vereiste waar iedereen naar kijkt, is om te beginnen met het vergelijken van de uitvoeringsplannen tussen uw productie- en testomgeving voor dezelfde query. Sommige uitvoeringsplannen op een productieserver kunnen soms pagina's lopen en zijn visueel moeilijk te onderscheiden.

SQL Server 2016 – Vergelijking abonnement

Als u het uitvoeringsplan uit uw productieomgeving heeft, open het dan in SQL Server 2016 Management Studio en klik met de rechtermuisknop om de volgende optie te krijgen:

Je ziet dat een interessante toevoeging. Het “Vergelijk Showplan” moet worden geselecteerd. Selecteer nu het plan dat is gegenereerd vanuit uw testomgeving. Hierdoor worden beide uitvoeringsplannen naast elkaar weergegeven, zoals hieronder weergegeven. Kijk naar de paarse kleur op de knooppunten.

Dit geeft aan dat beide knooppunten hetzelfde zijn, maar in sommige eigenschappen verschillen. Nu is het aan ons om met de rechtermuisknop te klikken en het tabblad Eigenschappen te openen.

Hier kunnen we doorgaan en elk van de node-eigenschappen vergelijken om te zien waar het onderscheid tussen de plannen zit. Dit zijn geweldige mogelijkheden die in de nieuwe versie zijn toegevoegd.

Ik weet zeker dat u deze functie van groot nut zult vinden bij het afstemmen van zoekopdrachten in uw omgevingen. Dat gezegd hebbende, een ding dat ik interessant heb gezien, is dat als je een live "Actual Execution Plan" neemt en het vervolgens probeert te vergelijken met een opgeslagen .sqlplan-bestand, het een fout zal opleveren zoals hieronder weergegeven:

Laat me weten of je deze functie zou gebruiken en of je deze functie hebt gebruikt. Wat zijn enkele van de verbeteringen die je zou willen dat deze vergelijkingsoperator had? Ik wil zeker van je leren.


  1. Uitvoeren van ExecuteScalar() wanneer er geen resultaten worden geretourneerd

  2. Dichtstbijzijnde match, deel 1

  3. Hoe gezond is uw SQL-server? Proactieve databasebewaking is van cruciaal belang

  4. 12c Adaptieve plannen in SQL Developer