ADO.NET Пул подключений и SQLServer
-
08-06-2019 - |
Вопрос
- Что это?
- Как мне реализовать пул подключений с помощью 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 к Ответ Кита.Он попал в самую точку.
Просто вежливое напоминание из часто задаваемых вопросов:
Ты искал в интернете, прежде чем задавая свой вопрос, и вы пришли ко на вооружении США с научно-исследовательской и информационной по поводу Вашего вопроса ...верно?