Вопрос

  • Что это?
  • Как мне реализовать пул подключений с помощью MS SQL?
  • Каковы последствия для производительности, когда
    • Выполнение множества запросов один за другим (т. е.используя цикл с более чем 30 тысячами итераций, вызывающий хранимую процедуру)?
    • Выполнение нескольких запросов, которые занимают много времени (более 10 минут)?
  • Существуют ли какие-либо рекомендации?
Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

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

+1 к Ответ Кита.Он попал в самую точку.

Просто вежливое напоминание из часто задаваемых вопросов:

Ты искал в интернете, прежде чем задавая свой вопрос, и вы пришли ко на вооружении США с научно-исследовательской и информационной по поводу Вашего вопроса ...верно?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top