Inviato da Roopesh Shenoy
In un recente articolo, lento nella domanda, Fast in SSMS? , SQL Server MVP, Erland Sommarskog , esplora le varie cose che colpiscono del piano di query, la compilazione di SQL dinamico e altre cose che alla fine influenzare la performance del database SQL Server. Ricopre diversi concetti e scenari come lo sniffing dei parametri, la cache piano di query, blocco, impostazioni salvate, problemi con i server collegati e altro ancora.
Alcune citazioni interessanti, da questo articolo -
I valori dei parametri della prima esecuzione della procedura hanno un impatto enorme per le esecuzioni successive.Se questa prima serie di valori per qualche ragione è atipico, il piano di cache non può essere ottimale per esecuzioni future. È per questo che lo sniffing dei parametri è un grande affare.
Di tanto in tanto, vedo la gente nei forum o nei newsgroup che mi dicono che il loro stored procedure è lenta, ma quando si esegue la query stessa di fuori della procedura è fast.To risolvere la query da solo, che hanno sostituito le variabili con costanti. Ma, come abbiamo visto, la risultante stand-alone query è molto diverso, e SQL Server possono fare stime più accurate con costanti invece di variabili, e quindi arrivare ad un piano migliore.
(Per i server collegati) ciò che conta è i permessi sul server remoto, non il server locale in cui viene eseguita la query.Inoltre, il problema è specifico quando il server collegato è un altro SQL Server esempio, e lo stesso problema potrebbe non apparire quando il server è collegato Oracle, MySQL o Access.
L'articolo spiega anche i diversi modi per individuare i colli di bottiglia e problemi potenziali e le query SQL correlati -
- Ottenere dei piani di query e parametri all'interno di Management Studio
- Ottenerli direttamente dalla cache delle query
- Far loro da una traccia
- Ottenere definizioni di tabelle e indici
- Individuazione delle informazioni statistiche
Erland elenca anche i vari modi per risolvere il parametro-sniffing questioni come forzare la ricompilazione, rivedere l'indicizzazione, utilizzando OPTIMIZE FOR e, infine, solo fissaggio Bad SQL, che possono essere applicate in diversi scenari.
Infine, l'articolo tratta SQL dinamico e come simili principi influenzano le prestazioni di query SQL dinamico. Questo è un articolo sicuramente la pena di leggere per chi lavora con SQL Server, gli sviluppatori ei DBA simili.
Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla
Nessun commento:
Posta un commento