Re: Решение найдено!
От: ChainSmoker  
Дата: 08.01.03 08:22
Оценка:
Если кому интересно, то после многочасовых раздумий мне все-таки удалось кое-что придумать.
А именно, избавиться от главного узкого места — подчиненного запроса в q2. Вместо того, чтобы вычислять максимальную дату для каждой записи q2 с помощью подчиненного запроса, строится отдельный запрос, разом находящий максимальную дату для каждого id1. Вроде все работает... и никаких тормозов

q1
PARAMETERS prmDate DateTime;
SELECT t1.id1, max(t2.data) AS MaxDate
FROM t1 INNER JOIN t2 ON t1.id2 = t2.id2
WHERE t2.date <= prmDate
GROUP BY t1.id1


q2
SELECT q1.id1, t2.id2
FROM q1 INNER JOIN t2 WHERE q1.MaxDate = t2.date
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.