Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Emergency103
1 / 1 / 0
Регистрация: 12.06.2017
Сообщений: 17
1

Обработка больших данных в Access

18.12.2017, 08:50. Просмотров 382. Ответов 5
Метки нет (Все метки)

Здравствуйте!

Вопрос заключается в следующем, у меня есть несколько БД Access, суммарное количество строк в которых может исчисляться 2-3-мя миллионами. Как правильнее будет выгрузить данные на форму, желательно в datagridview? Я пытался просто читать данные в отдельный список, потом выводить их в datagridview, но процесс чтения всего 10000 строк занимает порядка 15-20 секунд, о отрисовке в datagridview лучше вообще промолчать. Я понимаю, что пользователю сразу все эти данные не нужны, поэтому можно, наверное, сделать вывод динамическим, но я не знаю как это реализовать и вообще в какую сторону смотреть.

Прошу поделиться идеями реализации, по возможности ссылками на источники.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2017, 08:50
Ответы с готовыми решениями:

Чтение и обработка больших файлов
Нужно прочитать большой файл (несколько гигабайт), поделить содержимое файла на...

Добавление больших объемов данных
Доброго времени суток. Разрабатываю веб-приложение, в качестве бд использую MS...

Хранение больших объемов данных в файлах.
Добрый день. Столкнулся с проблемой необходимо хранить и обработывать большое...

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

Обработка данных через запросы SQL внутри приложения (виртуальная база данных)
Есть данные, которые с точки зрения удобства написания кода, проще всего...

5
Usaga
Эксперт .NET
5311 / 3618 / 633
Регистрация: 21.01.2016
Сообщений: 14,384
Завершенные тесты: 2
18.12.2017, 09:54 2
Цитата Сообщение от Emergency103 Посмотреть сообщение
Как правильнее будет выгрузить данные на форму, желательно в datagridview?
О Боже! Зачем?

Добавлено через 47 секунд
Цитата Сообщение от Emergency103 Посмотреть сообщение
Я понимаю, что пользователю сразу все эти данные не нужны, поэтому можно, наверное, сделать вывод динамическим, но я не знаю как это реализовать и вообще в какую сторону смотреть.
Вам нужен "постраничный" вывод. Paging.
0
Emergency103
1 / 1 / 0
Регистрация: 12.06.2017
Сообщений: 17
18.12.2017, 10:31  [ТС] 3
Usaga, а кроме datagridview есть какие то компоненты, может быть сторонние библиотеки какие-то, которые позволяют работать с большими объемами данных, так как слышал, что dgv не очень подходит для этих целей

И постраничный вывод мне не нужен) так как я переписываю программу с vba на c# и пожелания были таковы, чтобы интерфейс был один в один)
0
Usaga
Эксперт .NET
5311 / 3618 / 633
Регистрация: 21.01.2016
Сообщений: 14,384
Завершенные тесты: 2
18.12.2017, 10:33 4
Emergency103, а вы уверены, что эти миллионы записей нужны пользователю? Более того: зачем вам тогда вообще база данных?

Добавлено через 1 минуту
Да и как "более быстрый" контрол вам ускорит выгрузку такого объёма данных?
0
Emergency103
1 / 1 / 0
Регистрация: 12.06.2017
Сообщений: 17
18.12.2017, 10:41  [ТС] 5
Usaga, уверен, так как на оригинальном интерфейсе есть кнопка "отображение всех записей", там вывод 400-500к строк выходит за полсекунды, что для меня является загадкой, но так как у меня исходников нет, а только само приложение, то приходится пытаться писать с нуля. База данных нужна для сохранения данных, приходящих с верхнего уровня. Приложение же должно лишь выводить так называемый архив

Читал о том, что datagridview не подходит для таких нагрузок. В дополнение могу только сказать, что тот, кто писал классическое приложение, прикручивал к vba-проекту компонент flexgrid, который был им дописан до таких скоростей.
0
Usaga
Эксперт .NET
5311 / 3618 / 633
Регистрация: 21.01.2016
Сообщений: 14,384
Завершенные тесты: 2
18.12.2017, 10:46 6
Emergency103, "оригинальный интерфейс" может данные хранить локально или подтягивать их на фоне, заранее или использовать "виртуальный" контрол, который данные тянет только по факту обращения к ним. Вариантов много.

Добавьте кнопочки "вперёд" \ "назад". Подгружайте данные порциями (страницами). Предусмотрите поиск\фильтр. Не насилуйте машину и глаза пользователя.
0
18.12.2017, 10:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2017, 10:46

Потоковая передача больших данных по TCP из Java в C#
Добрый день, Прошу помощи в разборе полетов: Задача: передать картинку с...

Пишу базу данных на основе данных из базы access
Здравствуйте уважаемые форумчане)) у меня к вам несколько вопросов 1) как...

Сохранение данных, добавленных в базу данных access
Помогите сделать сохранение добавленных данных в бд, при перезапуске программы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru