ADO.NET пул соединений и SQLServer - PullRequest
3 голосов
/ 13 августа 2008
  • Что это?
  • Как реализовать пул соединений с MS SQL?
  • Каковы показатели производительности, когда
  • Выполнение множества запросов один за другим (т. Е. Использование цикла с 30K + итераций, вызывающих хранимую процедуру)
  • Выполнение нескольких запросов, которые занимают много времени (более 10 минут)?
Есть ли лучшие практики?

Ответы [ 4 ]

3 голосов
/ 13 августа 2008

Пул соединений - это механизм для повторного использования соединений, так как установка нового соединения медленная.

Если вы используете строку подключения MSSQL и System.Data.SqlClient, значит, вы уже используете ее - в .Net это скрыто большую часть времени.

Цикл из 30 000 итераций может быть лучше в качестве курсора на стороне сервера (ищите операторы курсора T-SQL), в зависимости от того, что вы делаете с каждым шагом вне sproc.

Длинные запросы - это нормально, но будьте осторожны, вызывая их с веб-страниц, так как Asp.Net действительно не оптимизирован для длительного ожидания, и некоторые соединения прервутся.

2 голосов
/ 13 августа 2008

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

Вы можете использовать приложение Performance Monitor с XP / Vista для наблюдения за соединениями SQL, и вы очень быстро увидите, используется ли пул или нет. Просмотрите категорию «Данные .NET CLR» в системном мониторе.

0 голосов
/ 13 августа 2008

На ваш вопрос также частично ответил эта тема . Поиск показал бы это .. Определение пула подключений, из которого Google ответил бы с первым попаданием: this ..

Что оставило бы только лучшие практики, что, я думаю, было бы хорошим вопросом:)

+ 1 до Ответ Кита . Он ударил гвоздь прямо в голову.

Просто вежливое напоминание из FAQ:

Вы искали интернет раньше задавая свой вопрос, и вы приходите к мы вооружены исследованиями и информацией о твоем вопросе ... верно?

0 голосов
/ 13 августа 2008

я второй Кит; если вы вызываете хранимую процедуру 30 000 раз, у вас гораздо большие проблемы, чем пул соединений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...