Вы действительно имеете в виду разные базы данных? Или вы имеете в виду разные схемы? Вы говорите о разных базах данных, но синтаксис использует таблицы в двух разных схемах, а не в двух разных базах. Я не вижу ссылок на ссылку на базу данных, которая была бы необходима, если бы существовали две разные базы данных, но, возможно, DB2.MYTABLE
должен быть синонимом для MYTABLE@DB2
.
Было бы полезно опубликовать сгенерированный план запроса. Также было бы полезно указать, какие индексы существуют и насколько избирателен каждый из этих предикатов. Я предполагаю, что изменение запроса будет
SELECT count(*)
FROM schema1.mytable a
WHERE NOT EXISTS (
SELECT 1
FROM schema2.mytable b
WHERE a.seq_no = b.seq_no )
AND a.filename NOT LIKE '%{%'
AND a.pt_type NOT IN (15,24,268,284,285,286,12,17,9,290,214,73)
AND a.stts = 1
может быть более эффективным, если исключено большинство строк в SCHEMA1.MYTABLE
, поскольку SEQ_NO
существует в SCHEMA2.MYTABLE
.