IBM® Informix® 12.10

Консолидация свободного пространства в таблицах

Вы можете консолидировать (перераспределять) свободное пространство в таблицах и фрагментах таблиц, в том числе при сжатии этих таблиц и их фрагментов.

Данные можно перераспределять в подключенном или автономном режиме с помощью аргумента repack или repack_offline. Операция repack_offline идентична операции repack, за исключением того, что сервер IBM® Informix выполняет эту операцию, когда таблица или фрагмент находится в режиме монопольной блокировки. Это предотвращает любой доступ к данным до окончания операции.

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

Удаление или отключение индексов перед выполнением операции repack_offline может сократить время, необходимое серверу для завершения операции. После этого можно повторно создать или включить индексы, желательно с помощью PDQ. Удаление или отключение индексов и их повторное создание или включение можно выполнить быстрее, чем операцию repack_offline без выполнения этих действий.

Требования.
  • У пользователя должен быть доступ к базе данных sysadmin (по умолчанию - только пользователь informix) и права администратора сервера баз данных (DBSA).
  • Следует увеличить размер журналов, если планируется, что любая рабочая нагрузка, включая в том числе операцию repack или repack_offline, записывает данные в файлы журналов чаще, чем один раз в 30 секунд.

Как консолидировать свободное пространство в таблице:

  1. Запустите функцию admin() или task() с аргументами table repack, table repack_offline, fragment repack или fragment repack_offline.

    Например, для таблицы укажите:

    EXECUTE FUNCTION task(“table repack”, “имя_таблицы”, 
    “имя_базы_данных”, “имя_владельца”);

    Имя таблицы указывается обязательно. Имя базы данных и имя владельца указывать необязательно. Если имя базы данных или имя владельца не задано, Informix использует текущее имя базы данных и текущее имя владельца.

    Например, для фрагмента укажите:

    EXECUTE FUNCTION task(“fragment repack_offline”, “список_номраз”);

    список_номраз - это разделенный пробелами список номеров разделов, которые принадлежат к одной и той же таблице.

  2. Можно также добавить в аргументы параметры compress и shrink в любой из следующих комбинаций:
    • compress repack
    • compress repack shrink
    • repack shrink

В следующем примере приведена команда, которая указывает, что сервер Informix должен консолидировать свободное пространство в таблице с именем "opera" в базе данных "music", владельцем в которой является "bob".

EXECUTE FUNCTION task("table repack","opera","music","bob");

В следующем примере приведена команда, которая указывает, что сервер Informix должен в автономном режиме консолидировать свободное пространство в таблице с именем "folk" в базе данных "music", владельцем в которой является "janna".

EXECUTE FUNCTION task("table repack_offline","folk","music","janna");
В следующем примере приведена команда, которая указывает, что сервер Informix должен консолидировать свободное пространство во фрагменте с номером раздела 14680071, а затем вернуть его в пространство базы данных.
EXECUTE FUNCTION task("fragment repack shrink", "14680071");

Чтобы отменить команду с аргументом compress, можно ввести CTRL-C в DB-Access. Команды с аргументом repack или repack_offline можно выполнить повторно, если выполнение команды было прервано ранее (операции сжатия и перераспределения записываются в журнал, но выполняются небольшими частями).


Отправить отзыв | Обмен примерами | Устранение неисправностей

Публикации в формате PDF смотрите по адресу Publications for the IBM Informix 12.10 family of products (Публикации для семейства продуктов IBM Informix 12.10).
Замечания по выпуску, документации и/или различным платформам смотрите на странице Замечания по выпуску.
 отметка времени Дата выпуска: март 2013 г.