Вчера я задал вопрос о том, как переписать SQL для выбора и вставки в пакетах. Мне нужно было сделать это, чтобы попытаться использовать меньше виртуальной памяти, поскольку мне нужно переместить миллионы строк сюда.
Цель состоит в том, чтобы переместить строки из таблицы B в таблицу A. Вот как я могу это сделать:
SQL # 1)
INSERT INTO A (x, y, z)
SELECT x, y, z
FROM B b
WHERE ...
SQL # 2)
FOREACH SELECT x,y,z INTO _x, _y, _z
FROM B b
WHERE ...
INSERT INTO A(_x,_y,_z);
END FOREACH;
Является ли что-либо из вышеперечисленного неверным?
База данных - Informix 11.5.
UPDATE:
Оказывается, что-то еще заставляло IDS расходовать сумасшедшие объемы памяти. Код выше, заставлял память пересекать выделенный порог. На данный момент я не вижу смысла использовать один метод над другим.