Массовое добавление данных в пустую таблицу

Предварительные условия:

  1. таблица должна быть создана согласно пункту «Оптимизация размеров табличных файлов БД»;

  2. при создании таблицы не должны быть использованы опции, требующие индексации загружаемых данных (атрибут столбца PRIMARY KEY);

  3. загружаемые данные могут индексироваться, но во время загрузки лучше все-таки отменить индексирование с помощью SQL-запроса DROP INDEX < имя индекса >, чтобы сократить время загрузки.

Примечание

Перед загрузкой данных рекомендуется создать полный архив БД (для повторной загрузки в случае неуспешной предшествующей загрузки).

Загрузка данных:

  1. желательно завершить на компьютере работу всех посторонних программ;

  2. запустить ядро СУБД ЛИНТЕР со следующими параметрами:

    • /POOL=N, где N – максимально возможное в этом сеансе значение (т.е. попытаться размещать добавляемые данные в пуле ядра СУБД в максимально возможном объеме перед сбросом их в файл данных);

    • не следует включать какую-либо трассировку выполнения SQL-запросов (по умолчанию трассировка выполнения SQL-запросов отменена) нет необходимости.

  3. загрузку данных выполнять либо клиентским приложением, либо с помощью утилиты loarel СУБД ЛИНТЕР в транзакционном режиме AUTOCOMMIT. В обоих случаях использовать пакетный режим загрузки данных:

После загрузки данных:

  1. создать, при необходимости, индексы.

    Если в таблице необходимо создать нескольких индексов, то рекомендуется хранить информацию об индексах в отдельных индексных файлах. Для этого:

    • указать количество индексных файлов (если это не было сделано при создании таблицы):

      ALTER TABLE … ADD INDEXFILES < количество файлов >;
    • создать индексы и указать их местоположение в отдельных индексных файлах, начиная со второго (первый индексный файл используется в качестве конвертера):

      CREATE INDEX … INDEXFILE 2 [BY APPEND];

      Атрибут BY APPEND заставляет индексировать данные без предварительной сортировки, что уменьшает размер используемого дискового пространства, но увеличивает время создания индекса;

  2. создать, при необходимости, условия ограничения целостности:

    ALTER TABLE … ADD PRIMARY KEY;
    ALTER TABLE … ADD UNIQUE … [INDEXFILE < номер файла >] [BY APPEND];
    ALTER TABLE … ADD FOREIGN KEY … [INDEXFILE < номер файла >] [BY APPEND];
  3. если загрузка данных завершилась некорректно, необходимо выявить и устранить причину, восстановить БД из архива и повторить загрузку данных.