Вилучення записів в таблиці бази даних для більшості типів реляційних баз даних не зменшує розмір таблиці. В багатьох типах баз даних відповідні записи лише маркуються як вилучені, а їх місце стає готовим для повторного використання. Більше того, вилучення записів призводить до фрагментації табличних індексів, а відтак, до зменшення їх ефективності. Пакування таблиць фізично усуває вилучені записи, таким чином дефрагментуючи їх та зменшуючи розмір використаного простору.

Пакування локальних таблиць BDE

Щоб упакувати локальну таблицю BDE, виберіть меню Таблиця | Утиліти | Упакувати (тільки для таблиць Paradox, FoxPro і dBase).

Щоб упакувати всі таблиці Paradox (.DB) та dBase (.DBF) в директорії, виберіть меню Інструменти | Специфічні засоби баз даних | Засоби BDE | Упакувати всі таблиці....

Примітка: BDE повинен бути встановлений.

Пакування таблиць в серверних базах даних

Для пакування таблиць в серверних базах даних використовуйте запит SQL відповідно до документації вашої бази даних. Наприклад, для упакування таблиці MySQL виконайте наступний запит до бази даних:

OPTIMIZE TABLE <table_name>

Для дефрагментування таблиці PostgreSQL використовуйте такий запит:

VACUUM FULL <table_name>

В базі даних Oracle вам спочатку необхідно дозволити впорядкування рядків для таблиці, а потім викликати команду для зменшення зайнятого під таблицю простору:

ALTER TABLE <table_name> ENABLE ROW MOVEMENT;
ALTER TABLE <table_name> SHRINK SPACE;

Якщо ваша база даних не має спеціальної команди SQL для пакування таблиць, і це не локальна таблиця BDE, спробуйте наступні кроки (знову ж таки, перевірте у документації до вашої бази даних):

  1. Зробіть копію таблиці, яку потрібно упакувати. Ця копія вже не буде фрагментованою.
  2. Видаліть стару таблицю.
  3. Перейменуйте нову таблицю так, щоб вона мала ім'я старої таблиці.

Зауваження

  1. Перед пакуванням рекомендується зробити резервне копіювання таблиці, якщо це можливо. Для цього можна використати операцію дублювання таблиць.
  2. Враховуйте, що в більшості випадків таблиця під час стандартної процедури дефрагментування буде заблокованою для інших процесів. Якщо це робиться з таблицями, що активно використовуються, спробуйте альтернативний варіант з копіюваннм таблиці та перенесенням даних до неї частинами.
  3. При використанні таблиці FoxPro з неанглійськими символами при наявності індексів упакувати таблицю засобами BDE буде неможливо.
  4. Після пакування таблиці Paradox парольний захист (якщо був) іноді зникає, тому перевірте і в разі потреби встановіть його знову.