Приложение Dot Net не может обработать более 5000 записей - PullRequest
0 голосов
/ 09 января 2012

мы работаем над настольным приложением .net. В графическом интерфейсе есть несколько вкладок и панелей. вкладка графика, вкладка imges, вкладка сетки результатов и т. д. Задача состоит в том, чтобы получить около 50 000 записей и иметь возможность принимать различные виды. Например, может иметь график между двумя столбцами, может просматривать результаты в сетке и просматривать изображения записей.

Приложение разработано, но его производительность слишком плохая. Мы пытаемся настроить таргетинг как минимум на 50 000 записей, но его отклик уходит на 5000 записей.

Факты:

1- Запросы являются сложными, которые включают число в соединениях. На avg 10-12 столов включается. И иногда подзапрос таблицы как объединение. Для возврата результатов требуется от 8 до 10 секунд. Что можно сделать для достижения производительности на этом уровне. - Указатель используется правильно.

Может ли помочь использование служб SSIS (Sql Server Integration Services) в контексте?

2 - Графики поддерживают очень маленький объем данных и начинают получать exshast примерно на 4000 записей. Что можно сделать, чтобы улучшить производительность графика?

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

1 Ответ

1 голос
/ 09 января 2012

Пожалуйста, опубликуйте свою схему и пример запроса, чтобы его можно было улучшить.

Что касается производительности графика, вот несколько общих советов по производительности (при условии WinForms):

Имеет ли объект графа .BeginUpdate() или .BeginDataUpdate() и соответствующий метод .EndUpdate() / .EndDataUpdate()? Если он есть, то вы должны его использовать. То же самое относится и к GridControl.

Вы добавляете элементы в график / сетку (или их источник данных) один за другим, или вы звоните .AddRange() или устанавливаете data source / data bindings. Если вы добавляете добавление элементов один за другим, то он часто будет переделывать список снова и снова, это было распространенной проблемой с элементом управления .NET 1.1 ListView, потому что элементы внизу хранились в массиве, а каждый .Add(..) вызов воссоздал массив, поэтому он очень быстро пошел O(n^2) для добавления элементов.

Какие графические и сеточные элементы управления вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...