Базы данных могут быстро увеличиваться в размере по мере использования, что иногда снижает их быстродействие. Они также могут быть повреждены или повреждены. Для предотвращения и устранения этих проблем можно использовать команду "Сжатие и восстановление базы данных". Процесс сжатия не сжимает данные — он уменьшает файл базы данных, убирая неиспользуемое пространство. Команда Сжать и восстановить базу данных также поможет улучшить производительность базы данных.
Совет: разделение базы данных помогает предотвратить повреждения файлов базы данных и ограничить потерю данных за счет хранения данных в отдельном файле, к которой пользователи не имеют прямого доступа.
Способы сжатия и восстановления базы данных
Существует несколько подходов к сжатию и восстановлению базы данных. Часто происходит автоматическое сжатие и восстановление базы данных при ее закрытии. Кроме того, вы можете вручную выполнить команду "Сжатие и восстановление базы данных", если база данных открыта, а база данных не открыта.
Подготовка
Перед началом сжатий и восстановления необходимо сделать следующее:
-
Резервное копирование базы данных В ходе восстановления Access может удалить некоторые данные из поврежденных таблиц. Иногда эти данные можно восстановить из резервной копии. В дополнение к обычной стратегии резервного копирования следует сделать резервную копию непосредственно перед использованием команды "Сжатие и восстановление базы данных". Дополнительные сведения см. в теме "Защита данных с помощью резервного копирования и восстановления".
-
Монопольный доступ к базе данных Для операции сжатия и восстановления базы данных требуется монопольный доступ к файлу базы данных, так как она может привести к отключению других пользователей. Перед выполнением сжатия и восстановления базы данных следует уведомить других пользователей, чтобы они не работали с ней в это время. Дополнительные сведения см. в теме "Открытие существующей базы данных Access".
Сообщите пользователям, как долго они не должны работать с базой данных. Если вы регулярно выполняете сжатие и восстановление, отмечайте, как долго выполняется эта операция. Это позволит более точно оценить, как долго пользователи не должны работать с базой данных.
-
Получить достаточное разрешение на доступ к базе данных Если у вас нет достаточных разрешений и вам нужно сжатие и восстановление базы данных, обратитесь за помощью к системному администратору. Дополнительные сведения см. в разделе "Изменения общего доступа к файлам по сети в Windows 10".
Автоматическое сжатие и восстановление базы данных при ее закрытии
Чтобы автоматически сжимать и восстанавливать базу данных при ее закрытии, установите флажок Сжимать при закрытии. Этот параметр влияет только на открытую в данный момент базу данных. Заключив этот параметр отдельно для каждой базы данных, которую вы хотите автоматически сжатие и восстановление. В многопользовательских базах данных этот параметр включать не стоит, поскольку из-за него может кратковременно нарушаться доступ к базе данных.
-
На вкладке Файл выберите пункт Параметры.
-
В диалоговом окне "Параметры Access" выберите "Текущая база данных".
-
В разделе Параметры приложений установите флажок Сжимать при закрытии.
-
Нажмите кнопку ОК.
-
Закройте и снова разкройте базу данных, чтобы параметр вступил в силу.
Сжатие и восстановление открытой базы данных вручную
-
Выберите "Файл>в >"& базы данных восстановления".
Access создаст копию сжатой и восстановленной базы данных в одном месте.
Сжатие и восстановление базы данных, которая не открыта, вручную
Используйте эту процедуру, если не можете открыть базу данных Access напрямую.
-
Убедитесь, что другие пользователи в данный момент не используют файл базы данных.
-
Запустите Access.
-
В Access 2013, Access 2016 и Access 2019
-
На странице шаблонов дважды щелкните пустую базу данных.
-
Выберите "Файл >закрыть".
-
-
Выберите "Работа с базами данных> сжатие и восстановление базы данных.
-
В диалоговом окне База данных для сжатия перейдите к базе данных, которую вы хотите сжать и восстановить, и щелкните ее два раза.
Access создаст копию сжатой и восстановленной базы данных в одном месте.
Сжатие и восстановление поврежденной базы данных при запросе Access
Если Access запросит сжатие и восстановление базы данных, при попытке открыть поврежденный файл базы данных выберите "Да". Могут произойти два вещи:
-
Если Access полностью восстановит поврежденный файл, отобразится сообщение об успешном восстановлении и необходимости проверить содержимое базы данных, чтобы убедиться в правильности данных.
-
Если Access успешно работает лишь частично, он отслеживает объекты базы данных, которые не удалось восстановить в системной таблице MSysCompactErrors. Access откроет таблицу MSysCompactErrors в представлении таблицы. Если у вас есть резервная копия, созданная перед повреждением базы данных, можно воспользоваться таблицей MSysCompactErrors для определения объектов, которые необходимо импортировать в восстановленную базу данных. Чтобы отобрать системные таблицы, щелкните правой кнопкой мыши заголовок окна навигации, а затем в диалоговом окне "Параметры переходов" выберите "Показать системные объекты".
Зачем сжатие и восстановление базы данных
Команда Сжать и восстановить базу данных помогает предотвратить и исправить следующие проблемы, которые могут возникнуть с базой данных: увеличение размеров файлов по мере использования и повреждение файлов.
Увеличение размера файлов базы данных по мере использования
По мере добавления и обновления данных, а также изменения их структуры размер файла базы данных увеличивается. Это происходит отчасти из-за добавления новых данных, а отчасти — по другим причинам:
-
Access создает временные скрытые объекты для выполнения различных задач. Иногда временные объекты остаются в базе данных, когда они уже не нужны.
-
При удалении объекта базы данных занимаемое им место на диске автоматически не освобождается — файл базы данных по-прежнему занимает место на диске даже после удаления.
По мере заполнения файла базы данных остатками временных и удаленных объектов его быстродействие может снизиться. Объекты могут открываться медленнее, а запросы и операции — выполняться дольше обычного.
Повреждение файлов базы данных
При определенных обстоятельствах файл базы данных может быть поврежден. Если файл базы данных совместно работает по сети и несколько пользователей одновременно работают с ним напрямую, существует небольшой риск его повредить. Риск повреждения тем выше, если пользователи часто редактирует данные в полях Memo, а риск растет со временем. Вы можете снизить этот риск с помощью команды "Сжатие и восстановление базы данных".
Зачастую такой тип повреждения возникает из-за проблемы с модулем VBA Visual Basic для приложений и не приводит к потере данных. Однако они могут привести к нарушению структуры базы данных, например потере кода VBA или ошибкам форм.
Иногда повреждение файла базы данных приводит к потере данных. Обычно эта потеря ограничивается потерей последнего действия одного пользователя, то есть единичного изменения данных. Когда пользователь начинает изменять данные и изменение прерывается (например, из-за отказа сетевой службы), Access помечает файл базы данных как поврежденный. Файл можно восстановить, но после восстановления некоторые данные могут отсутствовать.