2011-01-27 4 views
2

У меня есть приложение на основе ASP.net.SQL CPU High - SqlConnection не закрывается - Связано?

ЦП на поле SQL Server постоянно ~ 90 - 100%

Есть много inneficient запросов, которые я в настоящее время работаем, однако, глядя на код из предыдущего кодировщика, он никогда казалось, закрыть (или утилизировать) в SqlConnection

При запуске запроса folloing, я получаю около 450 соединений, которые "Ожидающие Команда"

SELECT COUNT (*) FROM MASTER.DBO.SYSPROCESSES WHERE DB_NAME (DBID) = 'CroCMS' И DBID! = 0 И CMD = 'ОЖИДАЕТ КОМАНДУ'

ли это, вероятно, будет причиной проблемы?

Я прочитал это, и это, кажется, относятся: http://www.pythian.com/news/1270/sql-server-understanding-and-controlling-connection-pooling-fragmentation/

Мы также получаем много времени ожидания, в частности, когда репликация включена .. Я не уверен, если это связано .. отключившие репликации (транзакционный) на данный момент, и кажется, что это нормально. (Этот сервер является абонентом нашего сервера базы данных Office)

Помогло бы избавиться от объекта подключения SQL?

ответ

1

Вы всегда должны распоряжаться объектом команды, когда вы сделали с ней. таким образом, объединение каналов может быть использовано лучше.

easist предназначен для использования с использованием статута.

using (
       var sqlCommand = new SqlCommand(
        "storedprocname", 
        new SqlConnection("connectionstring")) 
        { CommandType = CommandType.StoredProcedure }) 
      { 
      // do what you should.. setting params executing etc etc. 

} 
+0

Я считаю, что этот код создает соединение, но не удаляет его. То есть Сначала создайте SqlConnection и оберните его в «использование». –

2

Да, утилизируйте их. В противном случае игнорировать их пока нет. Возможно, пул такой же большой, потому что утверждения медленны. Я бы предложил:

  • Фиксация утверждений.
  • Проверьте приложение, в котором используется только одно соединение ПО ЗАПРОСУ (т. Е. Не открывать несколько одновременно).

Если после optiomizing SQL проблема не улучшилась, вы можете вернуться к пулу.

Смежные вопросы