Предварительные условия:
таблица должна быть создана согласно пункту «Оптимизация размеров табличных файлов БД»;
при создании таблицы не должны быть использованы опции, требующие индексации загружаемых данных (атрибут столбца PRIMARY KEY);
загружаемые данные могут индексироваться, но во время загрузки лучше все-таки отменить индексирование с помощью SQL-запроса DROP INDEX <имя индекса>
, чтобы сократить время загрузки.
Перед загрузкой данных рекомендуется создать полный архив БД (для повторной загрузки в случае неуспешной предшествующей загрузки).
Загрузка данных:
желательно завершить на компьютере работу всех посторонних программ;
запустить ядро СУБД ЛИНТЕР со следующими параметрами:
/POOL=N
, где N – максимально возможное в этом сеансе значение (т.е. попытаться размещать добавляемые данные в пуле ядра СУБД в максимально возможном объеме перед сбросом их в файл данных);
не следует включать какую-либо трассировку выполнения SQL-запросов (по умолчанию трассировка выполнения SQL-запросов отменена) нет необходимости.
загрузку данных выполнять либо клиентским приложением, либо с помощью утилиты loarel СУБД ЛИНТЕР в транзакционном режиме AUTOCOMMIT. В обоих случаях использовать пакетный режим загрузки данных:
клиентское приложение (call-интерфейс): использовать команду PUTM (см. документ «СУБД ЛИНТЕР. Интерфейс нижнего уровня»);
loarel: выполнять загрузку с ключом –s 2
(см. документ «СУБД ЛИНТЕР. Импорт данных»);
proc: использовать команды START APPEND/END APPEND (см. документ «СУБД ЛИНТЕР. Процедурный язык»).
После загрузки данных:
создать, при необходимости, индексы.
Если в таблице необходимо создать нескольких индексов, то рекомендуется хранить информацию об индексах в отдельных индексных файлах. Для этого:
указать количество индексных файлов (если это не было сделано при создании таблицы):
ALTER TABLE … ADD INDEXFILES <количество файлов>;
создать индексы и указать их местоположение в отдельных индексных файлах, начиная со второго (первый индексный файл используется в качестве конвертера):
CREATE INDEX … INDEXFILE 2 [BY APPEND];
Атрибут BY APPEND
заставляет индексировать данные без предварительной сортировки, что уменьшает размер используемого дискового пространства, но увеличивает время создания индекса;
создать, при необходимости, условия ограничения целостности:
ALTER TABLE … ADD PRIMARY KEY; ALTER TABLE … ADD UNIQUE … [INDEXFILE <номер файла>] [BY APPEND]; ALTER TABLE … ADD FOREIGN KEY … [INDEXFILE <номер файла>] [BY APPEND];
если загрузка данных завершилась некорректно, необходимо выявить и устранить причину, восстановить БД из архива и повторить загрузку данных.