Загрузка огромного количества данных из базы данных - что учитывать? - PullRequest
0 голосов
/ 11 августа 2009

Я создаю приложение в Winforms. Это будет общаться с БД (оракул) и загружать огромное количество данных (только для просмотра). Кроме кеширования и подкачки страниц, есть ли еще какой-то смысл? Производительность является проблемой, но так же учитывается ограничение памяти на компьютере пользователя.

Спасибо.

РЕДАКТИРОВАТЬ - Дополнительная информация: У меня также есть возможность создать сервис Java мыла, чтобы действовать в качестве среднего уровня. Это поможет?

Ответы [ 4 ]

6 голосов
/ 11 августа 2009

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

Например: допустим, у вас есть таблица с 1 000 000 строк и 20 столбцов, которые видны пользователю, и вы хотите отобразить 50 строк на экране одновременно. Когда вы отображаете сетку данных, вы должны перенести только часть этих строк (где-то между 50 и несколькими сотнями). Это незначительный объем данных для передачи в интрасети, и, конечно, он не повлияет на пользовательскую память. Даже если вы кэшируете 200 строк, это все равно <200 КБ данных для локального хранения и передачи по внутренней сети, что займет миллисекунды. </p>

2 голосов
/ 11 августа 2009

Вы также можете рассмотреть возможность создания отчетов, аудита и безопасности.

Обычно пользователи не будут пролистывать миллион строк, а будут использовать какой-то отчет для обобщения или запроса информации.

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

Наконец, вам, вероятно, нужно убедиться, что только действительные пользователи могут видеть соответствующие данные. Это может повлиять на структуру вашей базы данных и почти наверняка повлияет на архитектуру вашего приложения.

0 голосов
/ 11 августа 2009

Если вам нужно сделать несколько нажатий для построения вашей модели данных, скорее делайте всю работу в хранимой процедуре. Это сократит сетевой трафик, а также позволит Oracle делать то, что у него хорошо получается. Удачи.

0 голосов
/ 11 августа 2009

Запрашивайте только то, что вам нужно в данный момент, и отправляйте только то, что действительно изменилось. Люди часто используют ORM и просто вытаскивают весь объект с сервера. Затем они отправляют весь объект обратно на сервер, когда изменилась только небольшая его часть.

Отчасти это зависит от вашего ORM, но многое зависит от вас и от того, как вы используете ORM. Спекулятивное кэширование может быть полезным, но только в том случае, если вы точно уверены, что вам нужны данные. Начните с запроса как можно меньше, а затем работайте.

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