У меня следующий (упрощенный) запрос
select P.peopleID, P.peopleName, ED.DataNumber
from peopleTable P
left outer join (
select PE.peopleID, PE.DataNumber
from formElements FE
inner join peopleExtra PE on PE.ElementID = FE.FormElementID
where FE.FormComponentID = 42
) ED on ED.peopleID = P.peopleID
Без подзапроса эта процедура занимает ~ 7 секунд, но с ним она занимает около 3 минут.
Учитывая, что таблица peopleExtra
довольно большая, есть ли более эффективный способ сделать это объединение (если не считать реструктуризацию БД)?
Подробнее:
Внутренняя часть подзапроса, например,
select PE.peopleID, PE.DataNumber
from formElements FE
inner join peopleExtra PE on PE.ElementID = FE.FormElementID
where FE.FormComponentID = 42
Требуется от <1 до 5 секунд для выполнения и возвращает 95k строк </p>
В таблице people 1500 записей.