У меня есть клиентское приложение, которое подключается к БД с помощью предложения using.
using (SqlConnection sqlConn = new SqlConnection(ConnectionString))
{
sqlConn.Open();
//SQLcommand codes
}
Я знаю, что это обеспечит вызов sqlConnn.Close () и sqlConn.Dispose ().Однако для каждого клиента после выполнения этого кода я по-прежнему вижу некоторые SPID на SQLServer в спящем режиме, такие как:
60 0 sleep sa AVENGER 0 Xmark AWAITING COMMAND 0 61 0 sleep sa AVENGER 0 Xmark AWAITING COMMAND 062 0 sleep sa AVENGER 0 Xmark AWAITING COMMAND 0
Я знаю, это потому, что я использую пул соединений в своем соединении, поэтому они находятся в спящем режиме и снова используются в дальнейших командах.Я вижу, что эти процессы сбрасываются со временем (примерно через 10 минут или около того), если я ничего с ними не делаю.
Мой вопрос: есть ли параметр в C # или в SQLServer2008, который уменьшитна этот раз около 2 минут или около того?
Проблема, с которой я сталкиваюсь, заключается в том, что мой максимальный лимит соединений пула быстро достигается, если у меня много клиентов подключаются к базе данных в течение короткого периода времени.Я понимаю, что могу это исправить, увеличив пул подключений, однако я думаю, что это похоже на переход с меньшего резервуара на больший, чтобы содержать воду из протекающей крыши.
Я искал в MSDN и наткнулся на ClearPool () , который позволит мне неявно удалить SPID из пула, но я думаю, что это пойдет не так, как пул соединений, и он не совсем чистый.
любая помощь очень ценится.