Sono nuovo di SQL Server e voglio ottimizzare la mia prima query.
In SQL Server 20xx, qual è la differenza tra "visualizza piano di esecuzione stimato" e "include piano di esecuzione effettivo"?
Sono nuovo di SQL Server e voglio ottimizzare la mia prima query.
In SQL Server 20xx, qual è la differenza tra "visualizza piano di esecuzione stimato" e "include piano di esecuzione effettivo"?
Risposte:
Il piano di esecuzione stimato viene generato esclusivamente sulla base delle statistiche di SQL Server, senza eseguire effettivamente la query. A Query Optimizer viene appena chiesto cosa farebbe molto probabilmente con questa query, in base a tutte le informazioni che ha sulla query, le distribuzioni dei dati ecc.
Funziona bene, la query non deve essere eseguita (il che potrebbe richiedere molto tempo), ma se le statistiche non sono aggiornate, il piano potrebbe essere gravemente distorto.
Il piano di esecuzione effettivo è proprio questo: il piano di esecuzione effettivo utilizzato durante l'esecuzione effettiva della query. Questo ti mostrerà cose che potrebbero suggerire statistiche "obsolete" ecc. Ma per ottenere ciò, devi eseguire la query, che può richiedere molto tempo.
Il piano stimato ti fornirà le modalità di esecuzione della query sul server senza eseguirla effettivamente. Questo ti darà l'idea se devi sintonizzarti per creare un piano migliore o se il piano stimato sembra a posto.
Il piano effettivo mostra cosa è effettivamente accaduto quando il server ha eseguito la query. Include dettagli come il numero effettivo di righe da una tabella, la quantità di memoria utilizzata in caso di ordinamento.Quale grado di parallelismo ha usato durante l'esecuzione.
Ma la cosa migliore sarebbe guardare il diff tra "numero stimato di righe" e "numero effettivo di righe" che puoi vedere nel piano esecutivo reale. Più vicini questi due valori indicano che le statistiche sono aggiornate e per determinate statistiche questo è il piano migliore. Ma se questi valori hanno molte differenze, potrebbe essere possibile che le statistiche non siano aggiornate e quindi questo potrebbe non essere il miglior piano. In questo caso, l'aggiornamento delle statistiche aiuterà a generare un piano meglio stimato e quindi un piano effettivo.