Почему Crystal Reports Query работает так медленно?

У меня есть много Crystal Reports для одной и той же базы данных. Некоторые выполняются быстро, учитывая те же параметры даты, и многие поля такие же, как и таблицы, к которым они обращаются. Один из моих отчетов, который раньше выполнялся быстро, теперь работает очень медленно, и я вижу, что он просматривает все записи, представленные внизу 0 of 100000, пока не находит записи. Я понятия не имею, что я мог изменить, чтобы заставить его делать это. Некоторые отчеты по-прежнему работают быстро, а некоторые нет. Эти выводы согласуются с отчетами, о которых я говорю. Кто-нибудь знает, почему настройка может быть причиной этого?

Я пытался найти в них какие-то тонкие различия - ничего не вижу. Многие из них являются клонами оригинала (до сих пор работает быстро).

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

Use Indexes Or Server For Speed проверяется. Все остальные настройки в параметрах отчета идентичны.

Спасибо


person OneFineDay    schedule 12.06.2016    source источник


Ответы (1)


Вы можете выполнить некоторые действия по устранению неполадок:

  • Попробуйте запустить свой запрос непосредственно в БД и посмотрите, сколько времени это займет.

  • Добавлена ​​ли в отчет какая-либо бизнес-логика.

  • Можно также попытаться поместить тот же запрос в новый отчет и посмотреть, займет ли это такое же время.
  • Также попробуйте отладить свое приложение и посмотреть, не замедляет ли какая-то часть вашего кода отображение вашего отчета.
  • Вы запускаете его на локальной базе данных или на каком-то сервере.
  • Также, если вы можете поделиться своим запросом, чтобы я мог взглянуть.

Дай мне знать, если тебе еще понадобится помощь.

person Hitesh    schedule 12.06.2016
comment
Благодарю. У меня оба отчета открыты в Crystal Reports 11, оба используют один и тот же диапазон дат, один выполняется менее чем за секунду, другой занимает более 2 минут, и я вижу счетчик на этом, а не на другом. Отчеты используют разные логины, но по-прежнему попадают в одну и ту же БД. Единственная разница с логинами - это доступ к разным таблицам. Смысл бизнес-логики? Удаленный сервер. Они не хотят, чтобы я показывал запрос. По сути, они одинаковы для этих двух отчетов, поэтому я сравнивал яблоки с яблоками. - person OneFineDay; 12.06.2016
comment
попробуйте указать тот же логин в другом отчете и посмотрите, будет ли он работать быстрее. Бизнес-логика означает, что в отчет может быть включена дополнительная логика, такая как вычисляемые поля, некоторая логика форматирования, если еще в некоторых полях и т. д. Также проверьте, создав новый свежий отчет, чтобы устранить неполадки, если это занимает то же время. Также просто используйте имя сервера в строке подключения как Server=np:server\instance, дайте мне знать, если это поможет. - person Hitesh; 12.06.2016
comment
Да, в обоих есть бизнес-логин, в основном одинаковые — новый отчет может иметь несколько тонких отличий. Главный вывод заключается в том, что однажды это работало нормально, с тех пор это было так медленно. Я понятия не имею, что я сделал, чтобы внести это изменение. Чтобы восстановить с нуля, потребуется много времени - может быть, мне нужно что-то попробовать - не жду этого. Еще раз спасибо за помощь! - person OneFineDay; 12.06.2016
comment
является ли этот счет представлением того, что он просматривает записи на сервере или CR обрабатывает его на основе бизнес-логики? - person OneFineDay; 12.06.2016
comment
У меня получилось восстановить весь отчет. Во время моего путешествия я обнаружил, что могу использовать меньше групп, чем раньше, и это, возможно, в конечном итоге исправило ситуацию. Спасибо за ваше время и комментарии. - person OneFineDay; 13.06.2016