Как можно ускорить выполнение такого запроса?
select * from V_GOODSPARTIES M where NCOMPANY=:"COMPANY" and
NNOMMODIF in (select RN from NOMMODIF where MODIF_CODE='0160621'
and NRN in (select NPRN from V_GOODSSUPPLY where NCOMPANY=:COMPANY
and NRESTFACT>=0.001 and NSTORECRN in (select RN from ACATALOG where NAME='Терминал'
)
order by SNOMMODIFNAME
Никакой сбор статистики тут сильно не поможет, но если его заменить на следующий, то резво возрастает скорость выполния:
select * from V_GOODSPARTIES M where NCOMPANY=:COMPANY and
NNOMMODIF in (select RN from NOMMODIF where MODIF_CODE='0160621'
and exists (select NPRN from V_GOODSSUPPLY where NCOMPANY=:COMPANY and
NRESTFACT>=0.001 and NSTORECRN in
(select RN from ACATALOG where NAME='Терминал'
and M.NRN = NPRN )
order by SNOMMODIFNAME
Проблема, я думаю, в том, что нельзя использовать in с представлениями, потому что они тяжелые и обрабатываются полностью.
Я уж не говорю про использование переменных, еще и парсится постоянно.