В СУБД ORACLE нужно выбрать в таблице MY_TABLE все записи у которых COL_3 = 4107575, а затем в ней же выбрать все остальные записи у которых COL_1,COL_2 соответствуют тем, которые были выбраны.
Индексы в таблице созданы COL_1,COL_2 и COL_3.
делаю
SELECT * FROM MY_TABLE WHERE (COL_1,COL_2) IN
(SELECT COL_1 ,COL_2 FROM MY_TABLE WHERE COL_3 = 4107575)
И поиск происходит очень долго
При том что SELECT COL_1 AS COL_1_N,COL_2 AS COL_2_N FROM MY_TABLE WHERE COL_3 = 4107575 дает всего несколько строк.
Если выбрать одну строку
SELECT * FROM MY_TABLE WHERE (COL_1,COL_2) =
(SELECT COL_1,COL_2 FROM MY_TABLE WHERE COL_3 = 4107575 FETCH NEXT 1 ROWS ONLY)
, то поиск происходит мгновенно.
Пробовал
SELECT * FROM MY_TABLE,(SELECT COL_1 AS COL_1_N,COL_2 AS COL_2_N FROM MY_TABLE WHERE COL_3 = 4107575) WHERE COL_1=COL_1_N, COL_2=COL_2_N
Также бесконечно долго происходит выборка.