большой файл базы данных (mdb) требует времени для загрузки в vb.net, поэтому нужна альтернатива - PullRequest
2 голосов
/ 08 февраля 2011

У меня есть 4k записей в базе данных доступа.И одно из значений поля содержит ~ 100 строк каждая, а одно другое поле имеет ~ 25 строк.Таким образом, общий размер базы данных достигает ~ 30 МБ, и загрузка базы данных в vb.net с использованием odbc http://www.homeandlearn.co.uk/net/nets12p5.html

занимает много времени 15-20 секунд, а обновление любых других небольших полей также требует времени из-заlarge

Поэтому в качестве альтернативы я использовал rtf-файл (txt-файлы не сохраняли все символы новой строки).Таким образом, эти файлы только около 5-10 КБ.Но для 4k записей и 2 полей у меня сейчас 8k файлов.И копирование этих 8k RTF-файлов занимает огромное время для передачи 5 МБ или около часа.

Так что есть ли другая альтернатива для хранения этих данных.Так что он будет переносимым и легко загружаемым / доступным / обновленным с vb.net?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2011

Базы данных MDB

enter image description here

MDB - это тип файла базы данных Access.Базы данных Access никогда не предназначались для использования в качестве серверных веб-систем, в основном они предназначены для легкого использования в офисе.

Повышение производительности

Для временного повышения производительности вы можетеСжать и восстановить базу данных.Откройте его и найдите ссылку в меню инструментов.В качестве альтернативы вы можете сделать это программно .Это следует делать достаточно часто, в зависимости от количества изменений, внесенных в него вашими базами данных. Что делает компакт и ремонт?

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

Альтернативы

Для записей 4k + вы, вероятно, должны использовать приличную систему баз данных, разработанную специально для большихобъемы данных.

SQL-Server - отличная система баз данных от Microsoft.MySQL также является отличной альтернативой с открытым исходным кодом.В Интернете полно учебников по подключению к этим базам данных.

1 голос
/ 08 февраля 2011

Иногда я использую базы данных Access в .net.Хорошо, MS-Access - не лучшая база данных для такого рода приложений, я знаю.Но простые в выполнении сложные запросы, а также функциональные и хорошо известные отчеты делают Access хорошим решением по затратам.

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

  1. Создайте набор данных, если вы этого еще не сделали.
  2. Создайте соединение с базой данных MS-Access с помощью проводника баз данных.
  3. Перетащитетребуемые таблицы в созданном DataSet (.net создаст для вас код конструктора в backStage)
  4. В коде создайте объект tableAdapter и объект таблицы: предположим, что ваше имя dataSet - DS1 и имя таблицыis table01.

    язык: VB.NET проверяет автозаполнение intellisense для ваших объектов данных

создает объект tableadapter и объект таблицы (разработанный при удалении объектов проводника базы данных в наборе данных)

dim table01_TA as new ds1Tableadapters.table01_tableAdapter
dim table01 as new ds1.table01dataTable

загружает данные базы данных в таблицу таблицы в оперативной памяти01

table01 = table01_TA.getData

выполните операции с использованием table01 (добавление, обновление, вставка, удаление, запросы) для автоматической генерациискрипты для обновления, вставки и удаления, убедитесь, что ваша таблица имеет primaryKeys и правильные отношения.наконец, обновите адаптер таблицы.Если вы этого не сделаете, данные не будут обновляться в базе данных.

table01_Ta.update(table01)

Я предлагаю вам использовать LINQ для запроса ваших данных и методы для сбора данных для добавления и редактирования данных.Эти методы создаются автоматически, когда вы удаляете таблицы databaseExplorer в dataSet и сохраняете их.Стоит часто сжимать и восстанавливать базу данных Access.

Оставьте сообщение, если у вас возникли проблемы.

0 голосов
/ 08 февраля 2011

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

...