Övervaka databaskopplingar med sp_who2

Att vara slarvig med att stänga databaskopplingar i en webb-app kan ha förödande effekt på prestanda. Att spåra buggarna kan vara svårt ifall man inte är säker på hur man gör.

Ett bra tips kan vara att använda något av följande kommandon i SQL-managern.

EXEC sp_who

EXEC sp_who 'active'

Det finns även en odokumenterad version som heter sp_who2 och som visar några fler parametrar som CPUTime, DiskIO, LastBatch och ProgramName. Samma som innan alltså fast med en 2:a på slutet.

EXEC sp_who2

Med dessa kommandon får man upp en lista över de kopplingar som är igång och dess parametrar. Ifall det är fler än 100-200 stycken samtidigt så kan det betyda att man har problem. En normal sajt bör endast ha några få kopplingar öppna åt gången.

När det börjar gå riktigt åt skoken så kommer följande felmeddelande dyka upp i event-loggarna.

The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

Mer läsning om sp_who finns hos dotnetyuppie eller om hur man bör stänga kopplingar i sin kod på 15seconds