медленный отчет Cognos - PullRequest
       9

медленный отчет Cognos

1 голос
/ 29 сентября 2010

Мы только что перенесли отчет из Cognos reportnet в Cognos 8.4, и сейчас отчет слишком медленный.

В отчете просто есть кросс-таблица, вложенная в список с агрегатами за периоды / кварталы / половины / годы

Дизайн отчета:

  • Mainqueryitem (queryitem) получает данные с помощью ручного sql.
  • В ручном sql есть 4 запроса, объединенные inturn.
  • Все4 запроса просто выбираются из разных объединенных таблиц (без групп / сортировок / фильтров).
  • PlanningLevel (queryitem) получает данные из mainqueryitem.(например: if mainqueryitem.name = 'Black' then mainqueryitem.quantity else null. Все DataItems PlanningLevel использует вышеуказанный формат)
  • Страница отчета состоит из перекрестной таблицы, вложенной в список (сегментированный).
  • Список связан сmasterquery.
  • Кросс-таблица связана с уровнем планирования.
  • Кросс-таблица также содержит агрегаты.
  • Страница приглашения содержит список множественного выбора.

Отчет был очень медленным даже для меньших значений подсказок.

Затем я изменил свойство 'OverrideDimInfo' на 'нет' для элемента запроса PlanningLevel, который уже имел некоторые сведения DimensionInfos при переносе из reportnet (не знаю, что это было)

Затем отчет работал быстрее для меньших нет.критериев (<1 минута).(В 400 раз быстрее) Но больше нет.вариантов / критериев (> 2), отчет еще медленнее.(до 3,5 часов, для самого большого критерия выбора всех отчетов)

Файл mainqueryitem sql при запуске в toad для самого большого отчета занимает <5 минут.Самый большой отчет занимает 3,5 часа, который за несколько минут работал в reportnet. </p>

Есть идеи, как улучшить производительность?

1 Ответ

2 голосов
/ 24 ноября 2010

Одна вещь, которую я наблюдал в 8.4 при использовании объекта кросс-таблицы, вложенного в объект списка, объединенного с помощью отношения master-detail, заключается в том, что ваш главный запрос (связанный со списком) должен быть максимально ограниченным и простым. Я не знаю о вашей ситуации, но обычно целью списка, содержащего главный запрос, является сегментирование результатов кросс-таблицы на группы, основанные на атрибутах измерений, а подробный запрос является более сложным и также включает фактическую информацию. В этой ситуации Cognos не выполняет 2 запроса, которые извлекают все данные и форматируют на сервере Cognos (как и следовало ожидать), а запускает отдельный запрос для каждой группы. Иногда вы можете получить некоторое улучшение производительности, максимально упростив основной запрос. Часто люди просто копируют подробный запрос, переименовывают его в основной и присоединяются к подробному запросу без каких-либо изменений. Избавьтесь от всего, что вам не нужно в главном запросе. Это может быть не так в вашей ситуации, но мы неоднократно наблюдали такое поведение в наших отчетах, и обычно помогает настройка главного запроса.

Другая проблема, с которой вы можете столкнуться при использовании разделов списка (не уверен, что вы имеете в виду под сегментацией) в зависимости от того, как был построен отчет, заключается в том, что Cognos иногда запускает дублирующий запрос для каждого раздела. Вы можете увидеть, сколько запросов выполнено, выбрав в меню «Инструменты> Показать сгенерированный SQL / MDX».

...