Ajax-запрос к серверу SQL открывает слишком много пулов соединений - PullRequest
1 голос
/ 27 августа 2010

Я использую окно поиска, похожее на Google, в своем приложении asp.net.Каждое нажатие клавиши в поле отправляет Ajax-запрос в веб-метод IIS, который запрашивает TXT и возвращает совпадения - работает довольно круто.Тем не менее, при загрузке активности (например, 300 пользователей), я получаю ошибки, что мои 100 подключений пула израсходованы.Теперь я переосмысливаю, что, возможно, открытие / закрытие соединения БД при каждом нажатии клавиши может быть слишком большим.Как один из архитекторов может по-другому это сделать или гарантировать, что соединения будут восстановлены очень быстро.У меня есть конструкция 'using' для соединений, чтобы гарантировать, что она закрыта.Проблема в том, что GC, возможно, не восстанавливает их достаточно быстро?

Как Google справится с таким большим циклом открытия / закрытия.

Ответы [ 2 ]

0 голосов
/ 27 августа 2010

Возможно, вы уже делаете это, но в ваших же интересах требовать минимального количества символов перед тем, как включится «автозаполнение», а также всегда получать верхний (x) элементов.

0 голосов
/ 27 августа 2010

Memecache эти запросы нажатия клавиш / ответы БД и избегать поездки в БД каждый раз после первого.

Или сгенерировать предварительно скомпилированный список возможных автозаполненных фраз, кешировать в памяти и запросить вместоБД.Зачем вам нужно запросить в БД окно поиска?Создайте приемлемый список и используйте его вместо межуровневого соединения!

Или убедитесь, что в таблицах, к которым относится ваш запрос к БД, есть индексы.

...