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

SQL SERVER 2016 – Confronto dei piani di esecuzione

I nuovi strumenti portano nuove capacità e talvolta queste sono radicate in profondità nel prodotto che possiamo facilmente perderle. E SQL Server 2016 non è diverso. Dopo aver installato il CTP, sono stato piacevolmente sorpreso di vedere questa aggiunta per aiutare i nostri DBA che stanno svolgendo attività di ottimizzazione delle prestazioni e ottimizzazione delle query.

Allora di cosa sto parlando? Pensa a uno scenario in cui stai eseguendo una sorta di test nel tuo ambiente di controllo qualità. Sembra che tu stia risolvendo uno scenario di produzione e hai scoperto che quello stesso scenario funziona molto bene nel tuo ambiente di test. Sebbene tu abbia trasferito i dati dal database di produzione al server QA di prova meno di un mese fa, sei ancora sconcertato dalla domanda:perché questa differenza?

Il prossimo requisito a cui tutti guardano è iniziare a confrontare i piani di esecuzione tra la produzione e l'ambiente di test per la stessa query. Alcuni dei piani di esecuzione su un server di produzione possono essere eseguiti a volte su pagine ed è difficile trovare la differenza visivamente.

SQL Server 2016 – Confronto dei piani

Se disponi del piano di esecuzione dal tuo ambiente di produzione, vai avanti e aprilo in SQL Server 2016 Management Studio e fai clic con il pulsante destro del mouse per ottenere la seguente opzione:

Puoi vedere che è un'aggiunta interessante. È necessario selezionare "Confronta Showplan". Ora seleziona il piano che è stato generato dal tuo ambiente di test. Ciò porterà entrambi i piani di esecuzione in una vista affiancata come mostrato di seguito. Guarda il colore viola sui nodi.

Questo rappresenta il fatto che entrambi i nodi sono uguali ma hanno alcune differenze in alcune proprietà. Ora tocca a noi fare clic con il pulsante destro del mouse e visualizzare la scheda delle proprietà.

Qui possiamo andare avanti e confrontare ciascuna delle proprietà del nodo per trovare dove si trova la discriminazione tra i piani. Si tratta di fantastiche funzionalità aggiunte nella nuova versione.

Sono sicuro che troverai questa funzionalità di grande utilità negli esercizi di ottimizzazione delle query nei tuoi ambienti. Detto questo, una cosa che ho visto interessante è che se prendi un "Piano di esecuzione effettivo" dal vivo e poi provi a confrontarlo con un file .sqlplan salvato, verrà visualizzato un errore come mostrato di seguito:

Fammi sapere se utilizzeresti questa funzione e se l'hai utilizzata:quali sono alcuni dei miglioramenti che vorresti che questo operatore di confronto avesse? Mi piacerebbe sicuramente imparare da te.