- Что это?
- Как реализовать пул соединений с MS SQL?
- Каковы последствия производительности, когда
- Выполнять много запросов один за другим (то есть, используя цикл с 30K + итерациями, вызывающими хранимую процедуру)?
- Выполнение нескольких запросов, которые занимают много времени (более 10 минут)?
- Есть ли лучшие практики?
Пул соединений - это механизм для повторного использования соединений, так как установка нового соединения медленная.
Если вы используете строку подключения MSSQL и System.Data.SqlClient, то вы уже используете ее - в .Net это все время скрыто.
Цикл из 30 тыс. Итераций может быть лучше в качестве курсора на стороне сервера (ищите операторы курсора T-SQL), в зависимости от того, что вы делаете с каждым шагом за пределами sproc.
Длинные запросы - это хорошо, но будьте осторожны, вызывая их с веб-страниц, так как Asp.Net на самом деле не оптимизирован для длительного ожидания, и некоторые соединения будут отключены.
Немного больше информации о пуле соединений ... вы уже используете его с SqlClient, но только если ваша строка соединения идентична для каждого нового соединения, которое вы открываете. Насколько я понимаю, каркас будет пул соединений автоматически, когда это возможно, но если строка соединения меняется даже незначительно от одного соединения к другому, то новое соединение не будет исходить из пула - оно создается заново (так что это дороже ).
Вы можете использовать приложение Performance Monitor с XP / Vista для наблюдения за соединениями SQL, и вы очень быстро увидите, используется ли пул или нет. Посмотрите на категорию «.NET CLR Data» в системном мониторе.
Я второй Кит; если вы вызываете хранимую процедуру 30000 раз, у вас гораздо большие проблемы, чем пул соединений.
Эта тема также частично ответила на эту тему . Поиск показал бы это .. Определение Пулы соединений, из которых Google ответил бы с первым хитом быть это ..
Что оставило бы только лучшие практики, что, я думаю, было бы хорошим вопросом :)
+1 к ответу Кита . Он ударил гвоздь прямо в голову.
Просто вежливое напоминание из FAQ:
Вы искали в интернете, прежде чем задать свой вопрос, и вы пришли к нам, вооруженные исследованиями и информацией о вашем вопросе ... верно?