FB3. Вот такой запрос:
Что нужно? Нужно получить все записи в таблице modul, которые имеют записи в таблице defect. Запрос отрабатывает правильно, но долго. Если в exists оставить одну таблицу umass, то поведение exists ожидаемое (читается по одной записи из umass для каждой записи modul). Если в exists две таблицы, то umass весь читается. Вообще таблицы umass и defect большие. Поэтому хочется такого поведения - читаем запись из modul, читаем последовательно umass и defect, если запись есть, то переходим к другой записи modul. Можно ли что-то сделать с exists? Или посмотреть другие техники? Какие?
select a.sn_mdl from modul a where exists ( select b.id_ums from umass b inner join defect c on c.id_ums=b.id_ums where b.id_mdl=a.id_mdl )
Что нужно? Нужно получить все записи в таблице modul, которые имеют записи в таблице defect. Запрос отрабатывает правильно, но долго. Если в exists оставить одну таблицу umass, то поведение exists ожидаемое (читается по одной записи из umass для каждой записи modul). Если в exists две таблицы, то umass весь читается. Вообще таблицы umass и defect большие. Поэтому хочется такого поведения - читаем запись из modul, читаем последовательно umass и defect, если запись есть, то переходим к другой записи modul. Можно ли что-то сделать с exists? Или посмотреть другие техники? Какие?