Я использую SQL-запрос, похожий на следующую форму:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
AND table1.period = table2.period
И это либо слишком медленно, либо что-то заторможенное, потому что для возвращения требуется не менее 4 минут. Если бы я изменил его на это:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
WHERE table1.period = table2.period
тогда он отлично работает (хотя и не возвращает правильное количество столбцов). Есть ли способ ускорить это?
UPDATE: он делает то же самое, если я переключу последние две строки последнего запроса:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.period = table2.period
WHERE table1.person_uid = table2.person_uid
ОБНОВЛЕНИЕ 2: На самом деле это те представления, к которым я присоединяюсь. К сожалению, они находятся в базе данных, в которой я не контролирую, поэтому я не могу (легко) внести какие-либо изменения в индексирование. Я склонен согласиться с тем, что это проблема индексации. Я подожду немного, прежде чем принимать ответ, если есть какой-то волшебный способ настроить этот запрос, о котором я не знаю. В противном случае я приму один из текущих ответов и попытаюсь найти другой способ сделать то, что я хочу сделать. Спасибо всем за помощь до сих пор.