В настоящее время я тестирую GUI в приложении ASP.net 2.0. RDBMS - это SQL Server 2005. Хост - это Win Server 2003/IIS 6.0.Как обнаружить утечки соединения SqlServer в приложениях ASP.net?
У меня нет исходного кода приложения, поскольку он был запрограммирован внешней компанией, которая не выпускает код.
Я заметил, что приложение работает хорошо, когда я перезапускаю IIS, но после некоторого тестирования после того, как я открыл и закрыл свой браузер на пару часов, приложение начинает становиться все медленнее и медленнее. Мне было интересно, было ли это поведением из-за плохой практики закрытия связи со стороны программистов: я подозреваю, что здесь есть утечка открытого соединения.
Я думаю, сборщик мусора .Net в конечном итоге закроет их, но ... это может занять некоторое время, нет?
У меня есть SQL Server Management Studio, и я вижу из монитора активности, что в базе данных открыто несколько соединений.
Из всего, что было сказано выше, вот некоторые вопросы, связанные с основным вопросом:
Есть ли способ узнать, в SQL Server 2005, если соединения открыты, потому что они ждут be , используемый в пуле соединений или если они открыты, потому что они используются приложением ?
знает Сомон хороших онлайн/бумажных ресурсов, где я мог бы узнать, как использовать производительности счетчики или какой-либо другой вид инструментов , чтобы помочь отследить такого рода вопросов?
Если счетчики производительности являются наилучшим решением , каковы переменные, которые I следует смотреть?
включен пул соединений? – 2008-10-17 15:17:20
не включен ли он по умолчанию? – 2008-10-17 15:24:16
Да. когда я столкнулся с подобной проблемой, я обнаружил, что в приложении было установлено значение false. – 2008-10-17 15:29:10