Объектный источник данных с бизнес-объектами работает медленно? - PullRequest
1 голос
/ 14 февраля 2012

В моем проекте у меня есть страница с графиками RDLC.Раньше они запускались на некоторых хранимых процедурах и xsd.Я бы передал строку идентификаторов моих результатов, которые нужно включить, чтобы ограничить мой набор данных.Мне пришлось изменить это, потому что я начал работать с пределом в 1000 символов для параметров набора данных объекта.

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

Кто-нибудь знает, известно ли, что источники данных объектов работают медленно при извлечении бизнес-объектов?Если нет, есть ли хороший способ отследить, что именно вызывает проблему?Я ставлю точки останова в своем методе, который фактически извлекает бизнес-объекты до и после того, как он их получает;этот метод не является причиной замедления.

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

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

Когда я связывал свой List с ReportViewer, загрузка страницы заняла 1 минуту 9 секунд.

Когда моя бизнес-логика использовала ту же функцию, которая возвращает список, и строила DataTable из списка только с необходимыми столбцами для отчета, затем привязывала DataTable к отчету, который страница загружает за 20 секунд.

0 голосов
/ 21 сентября 2012

@ Уильям: я столкнулся с той же проблемой.Однако я заметил, что когда я выравниваю бизнес-объект, отчеты запускаются значительно быстрее.Вам даже не нужно отображать бизнес-объект на новый плоский, вы можете просто установить для вложенного объекта значение NULL.Т.е.:

  foreach(var employee in employees)
    {
        employee.Department = null;
        employee.Job = null;
    }

Похоже, что составитель отчетов делает некоторые утомительные действия, пересекая граф объектов.

Это, похоже, имеет место только в VS 2010. VS 2008, похоже, не страдаетте же проблемы.

0 голосов
/ 14 февраля 2012

Используете ли вы выберите *?Если это так, попробуйте выбрать каждое поле отдельно, если вы не используете всю таблицу.Это немного поможет.

...