Разбивка на страницы и буферизация данных в приложении Windows с использованием C # 2005 - PullRequest
0 голосов
/ 27 сентября 2010

Требование
.NET-приложение Windows, использующее C #, взаимодействует с БД Oracle для получения и сохранения данных

Выпуск
С огромным объемом данных,производительность низкая, а использование памяти высокое, приложение отображает все данные на экране.Время отклика велико из-за вызова базы данных и обработки данных на стороне клиента

Предлагаемое решение
Использование разбиения на страницы (из базы данных Oracle) для отображения частичных данных на экране, время отклика приложениябудет быстрее;однако, это сделает вызовы БД для каждой страницы.Мы ищем решение для получения данных 1-й страницы из БД и запуска приложения, после чего будет выполнено фоновое задание для передачи остальных данных из БД в локальную XML-БД.Таким образом, в случае следующей страницы данные будут загружаться из XML, а не из БД.

Возможен ли этот дизайн?
Возможна ли синхронизация между локальной БД XML и БД Oracle?

1 Ответ

0 голосов
/ 27 сентября 2010

Лично я не уверен, что вы действительно хотите зайти так далеко, поскольку синхронизация и общий дисковый ввод-вывод в лучшем случае могут быть очень «интересными».

Обычно то, что я нашел хорошим в прошлом, есливы ДЕЙСТВИТЕЛЬНО должны иметь «предварительно извлеченные» записи для большей части набора результатов: вы можете кэшировать, скажем, следующие 2 и предыдущие 2 страницы в памяти, таким образом, пользовательский переход будет плавным, и после того, как вы перейдете на страницу, внутренний потоквыйдет и предварительно извлечет следующую страницу, чтобы она у вас была.

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

...