У меня возникли проблемы с выбором для вставки через dblink в оракуле 10. Я использую следующий оператор:
INSERT INTO LOCAL.TABLE_1 ( COL1, COL2)
SELECT COL1, COL2
FROM REMOTE.TABLE1@dblink s
WHERE COL1 IN ( SELECT COL1 FROM WORKING_TABLE)
Когда я запускаю оператор, на удаленном сервере в ссылке на БД запускается следующее:
SELECT /*+ OPAQUE_TRANSFORM */ "COL1", "COL2"
FROM "REMOTE"."TABLE1" "S"
Если я запускаю только выбор и не делаю вставку в следующее:
SELECT /*+ */ "A1"."COL1"
, "A1"."COL2"
FROM "REMOTE"."TABLE1" "A1"
WHERE "A1"."COL1" =
ANY ( SELECT "A2"."COL1"
FROM "LOCAL"."TABLE1"@! "A2")
Проблема заключается в том, что в случае вставки таблица enitre вытягивается через dblink, а затем ограничивается локально, что занимает немало времени, учитывая размер таблицы. Есть ли причина, по которой добавление вставки изменит поведение таким образом?