Identifiera problem med parametersniffning

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

Denna vecka har jag tittat lite på prestandaproblem i SQL Server orsakade av parametersniffning. Jag tänkte skriva en längre blogpost om det, men så hittade jag denna http://blogs.msdn.com/b/sqlcat/archive/2010/06/09/identifying-query-compile-runtime-parameter-values-using-xml-showplan-output.aspx som redan handlade om i stort sätt det jag ville säga. Så då får det istället bli en refenrens till det blogginlägget!

Utöver det du kan läsa dig till där, kan jag tipsa om några situationer där man kan bli extra hårt drabbad:

– Om du har ojämn datadistribution i dina tabeller

– Om du har dåliga/saknade index

– Om din statistik är utdaterad

– Om du bygger om index, och därefter jobbar mot en liten del av datat i tabellerna som har ojämn distribution.

 

Vad kan du då göra? Jo, du kan till exempel testa några av följande saker:

– Ta bort den specifika dåliga Query Planen

– Använd Trace Flag 4136 (OBS: TESTA DETTA FÖRST!!!)

– Använd flaggan OPTIMIZE FOR UNKNOWN, alternativt OPTIMIZE for parameter x = value y

– Bygg om index igen på den aktuella tabellen

– Uppdatera statistiken igen på den aktuella tabellen

– Skapa en Plan Guide med “rätt” plan

 

Eller, så kan du givetvis höra av dig till oss så kan vi hjälpa till!