Службы отчетов SQL — исключение нехватки памяти

StackOverflow https://stackoverflow.com/questions/138444

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть около 10 lac-записей в моей единственной таблице SQL.Мне нужно загрузить столько записей в свою запись.Мне нужно знать, загрузится ли это.когда я попытался загрузить, чтобы сообщить об исключении нехватки памяти.

Это было полезно?

Решение

На этот вопрос невозможно ответить, если вы не расширите свой вопрос.Какой язык вы используете?Какая платформа создания отчетов?Как выглядит SQL-запрос?

Редактировать: Ах, ок, службы отчетов Microsoft SQL.Ну, я уверен, он должен легко обрабатывать запросы к таблицам с миллионами кортежей.Все зависит от того, как вы структурировали свой запрос, поэтому, пока вы нам его не предоставите, мы не сможем вам помочь.

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

Службы Reporting Services (а также Cognos, Business Objects и другие пакеты отчетов BI) обычно имеют проблемы с отображением отчетов, которые содержат сотни тысяч записей или миллионы записей в ВЫХОДНЫХ данных.У большинства этих систем нет особых проблем с агрегированием данных в десятки тысяч записей, но как только вы начнете переходить к сотням тысяч или миллионам, вы столкнетесь с ошибками памяти.

Я рекомендую НЕ использовать службы Reporting Services для отчетов, содержащих сотни тысяч строк.Никто не будет читать все строки отчета.Черт возьми, большинство пакетов BI даже не выведут отчет, если вы попытаетесь его отобразить в Excel из-за ограничения в 65 556 строк.Я бы рекомендовал использовать SSIS для больших дампов необработанных данных, кубов служб Analysis Services, если вы хотите, чтобы пользователь мог выполнять специальный анализ срезов и кубиков в Excel или находить способы разбить их на более мелкие, более релевантные данные, которые могут быть использованы человек - это означает агрегирование или фильтрацию до нескольких сотен или тысяч строк.

Если вы ДОЛЖНЫ использовать службы отчетов и хотите использовать их в качестве инструмента для передачи данных в Excel, вы можете попробовать выполнить рендеринг в CSV по подписке.Опять же, я бы рекомендовал вместо этого просто создать пакет SSIS, который делает это, поскольку у вас не будет проблем с памятью при выводе CSV-файлов с несколькими миллионами строк.Но если вы ДОЛЖНЫ использовать службы отчетов в качестве инструмента вывода, минимизируйте затраты памяти, выбрав наименее ресурсоемкий метод рендеринга.

Вы пытаетесь отобразить десятки тысяч записей?Какой пользователь это прочитает?Вы пробовали запланировать и отправить отчет по электронной почте?

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