Access 2010 DB расширяется в размерах - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть база данных Access, которую я создал из электронной таблицы Excel.

БД содержит основную таблицу с 58 полями, три другие таблицы, содержащие около 10 полей, и последнюю таблицу с двумя полями. Большая часть новой информации попадает в основную таблицу.

После использования в течение нескольких дней (два пользователя) база данных увеличивается с 20 МБ до 50 МБ. Некоторые новые записи добавляются, но их недостаточно для генерации 30 МБ. В моей основной таблице было 4000 записей после того, как я завершил импорт из Excel и сжал базу данных.

Пользователи не добавили более нескольких десятков новых записей, и база данных после сжатия сократилась до примерно 20 МБ. Это то, что распространено в 2010 году? Никогда не сталкивался с этим с 2000/2003.

Спасибо, Вестлей

Ответы [ 2 ]

4 голосов
/ 21 апреля 2011

Да, это часто встречается.

Наиболее распространенными причинами раздувания базы данных Access являются чрезмерное использование временных таблиц и чрезмерное использование SQL без запроса.Всякий раз, когда вы кодируете строку SQL за пределами querydef, Access должен «связывать» этот оператор КАЖДЫЙ раз, когда он выполняется.Этот процесс занимает небольшое количество времени и использует большое количество рабочего пространства, которое не восстанавливается, пока вы не уплотните базу данных.Querydef 'связаны', когда они сохранены и когда БД сжаты. Ref .

Множество вставок / удалений также приведет к росту.

ACC: база данных быстро увеличивается при изменении операторов SQL

Интересно ?: Растущая проблема с размером файла MS Access

0 голосов
/ 22 ноября 2018

Изображения в отчетах также могут привести к увеличению базы данных Я нашел другой способ увеличения базы данных доступа. Если у вас есть отчет (и, возможно, также форма?), Где есть изображения, которые вставляются из внешнего файла, тогда один из параметров «тип изображения» - «Общий доступ». Если этот параметр используется, то Access сохраняет новую локальную копию изображения каждый раз, когда используется другое изображение. Моя база данных 1MByte Access закончилась 500MByte хранящихся внутри изображений. Кажется, нет никакого способа их очистки, а сжатие базы данных не очищает их.
Решение состоит в том, чтобы использовать «связанный» параметр «тип изображения» . Я скопировал содержимое базы данных в новую базу данных, и она осталась на уровне 1 МБайт.

...