sqlsrvr.exe, потребляющий большие объемы памяти - PullRequest
0 голосов
/ 22 августа 2011

У меня есть приложение .NET 1.1, работающее в Windows XP и с SQL Server 2000 с пакетом обновления 3. Приложение использует библиотеки обработки данных и обработки исключений Enterprise Library.

Когда я отправляю форму, которая вызывает несколько сохраненных процедур и, наконец, выполняет INSERT в таблицу, процесс sqlsrvr.exe продолжает увеличиваться до 300-500 МБ.Форма занимает более 10 минут, чтобы выполнить.

Эта же страница в нормальном состоянии занимает не более 1 минуты.

Что здесь может происходить и как это можно исправить?

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

Процесс сервера Sql, который потребляет такое количество памяти, является нормальным.SQL Server будет занимать большой объем памяти, но вернет его под давлением памяти ОС (в зависимости от минимальных и максимальных настроек памяти, установленных на SQL-сервере)

Если ваш запрос медленный, посмотрите на ваши запросы SQL и/ или отсутствующие индексы.

Описанный вами симптом звучит так, как будто он может быть вызван анализом параметров.Убедитесь, что ваша статистика и индексы обновлены, и, возможно, опубликуйте свой запрос.

0 голосов
/ 22 августа 2011

Процесс sqlsrvr.exe продолжает увеличиваться до 300-500 МБ.

Хорошо, где Хью здесь? У меня есть сервер 16 ГБ sql;)

SQL Server, НЕ ИСПОЛЬЗУЕМЫЙ ИНЫМ В CNOFIGURATION, будет кэшировать столько, сколько может. Каждая прочитанная страница (8 КБ) остается в памяти. Диски медленные. баран быстрый. Он предполагает, что это сервер и, следовательно, может использовать память.

И выполнение формы занимает более 10 минут.

Хм, посмотрим.

  • Дрянное программирование (отсутствуют индексы`?)
  • Недостаточно памяти;) Да, SQL Server требует от вас до 500 МБ - это виртуальная машина с 128 МБ для запуска или как?
  • Неподходящая дисковая подсистема. SQL-серверы ОЧЕНЬ интересны в IOPS DISC - не мб / с, а IOPS. Я запускаю свой сервер с 10 дисками сейчас, и он хочет больше.

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

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

Для начала:

  • Проверка производительности coutners, в основном на основе дисков. Это дает вам подсказку.
  • Убедитесь, что у вас правильные показатели. Подтвердите это, проверив запросы, выполняемые с помощью профилировщика. Возможно, что-то просто вызывает значительные неэффективные операции благодаря отсутствующему индексу.
  • Если это не так, проверьте, ждет ли статистика - виновником может быть и блокировка.

ОЧЕНЬ трудно сказать НИЧЕГО, кроме - ну, - что вы не даете грубую информацию.

Я видел такие заявления:

Когда я отправляю форму, которая вызывает несколько сохраненных процедур и, наконец, выполняет INSERT в таблицу

разрываются на тонны неэффективных операций в 12 слоях каскадных хранимых процедур.

Тем не менее, если это аппаратно - обновите до SSD. Твердотельный накопитель емкостью 120 ГБ в наши дни ОЧЕНЬ дешев и ОЧЕНЬ быстр. У меня есть Velociraptors 3 для некоторых операций и до 60 000 IPS - в то время как диск более высокого уровня борется с 400.

...