Исключение нехватки памяти в SQL 2008 - PullRequest
5 голосов
/ 11 января 2011

Относительно исключения «Недостаточно памяти» в SQL Server 2008:

Когда я выполняю большой запрос, который вставляет тысячи строк в таблицу,

Исключением, которое возникает при выполнении этого, является "System.OutOfMemoryException".

Ответы [ 2 ]

4 голосов
/ 11 января 2011

Согласно очень хорошей статье базы знаний Microsoft (ссылка здесь) это вызвано запросом, который требует больше ОЗУ, чем доступно.

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

Это краткое изложение всей статьи.Оригинал содержит ссылки на контент, чтобы более подробно объяснить процесс, с помощью которого вы должны следовать их предложениям.

Цитата: Статья базы знаний MS 909678

Может появиться сообщение об ошибке «System.OutOfMemoryException» при использовании служб отчетов SQL Server

Для решения этой проблемы воспользуйтесь одним из следующих способов.

Метод 1

Добавьте достаточную физическую память к компьютеру.

Примечание. Если у вас более 2 гигабайт (ГБ) памяти, вы можете включить переключатель / 3GB вфайл Boot.ini для лучшей производительности.Для получения дополнительной информации об использовании параметра / 3GB в SQL Server.

Метод 2

Запланируйте запуск отчетов в нерабочее время, когда ограничения памяти меньше.

Метод 3

Отрегулируйте настройку MemoryLimit соответствующим образом.

Примечание. При отображении отчета через веб-службу служб Reporting Services, веб-служба служб Reporting Servicesполучает параметр MemoryLimit из файла Machine.config.Однако запланированный отчет создается службой Windows сервера отчетов.Служба Windows сервера отчетов получает параметр MemoryLimit из файла RSReportServer.config.

Метод 4

Обновление до 64-разрядной версии служб отчетов Microsoft SQL Server 2005, чтобы службы отчетов могли использовать больше памяти.

Метод 5

Редизайн отчета.Для этого используйте один из следующих методов.

Перепроектируйте запросы отчета.Вы можете уменьшить потребление памяти, изменив структуру запросов отчетов следующими способами:

  • Возвращать меньше данных в запросах отчетов.
  • Использовать лучшее ограничение для предложения WHERE запросов отчета..
  • Перемещение сложных агрегатов в источник данных.

Метод B

Экспорт отчета в другой формат.Вы можете уменьшить потребление памяти, используя другой формат для отображения отчета.

Метод C

Упрощение дизайна отчета.

Вы можете уменьшить потребление памяти, упростив дизайн отчета следующими способами:

  • Включить в отчет меньшее количество областей данных или элементов управления.
  • Использование подробного отчета для отображения деталей.
0 голосов
/ 11 сентября 2012

Это проблема с вашим лог-файлом.

Так что вместо inser into используйте select into оператор.

...