|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Vladimir Ivanov 2:5030/1032.120 17 Feb 2001 14:52:00 To : Andrew Evdokimov Subject : Невозможно (select) -> join ? --------------------------------------------------------------------------------
Пятница Февраль 16 2001: Andrew Evdokimov ... vitus@ice.ru
AE> Гы, вспомнил тут случай из собственной недавней практики с MSSQL -
AE> путем перехода от вложенного подзапроса к join получил снижение
AE> времени выполнения запроса с 21 минуты до 6 секунд (210 раз !).
Все верно, в учебниках Microsoft прямо указано, что вложенные запросы работают
очень медленно и их надо избегать. Hо не всегда можно через join разложить
подзапрос. Покрайней мере буду благодарен если вы предложите вариант для
следующего примера (остатки по дебету на счете @Account на дату @DateIdx в
разрезе аналитики первого уровня An1):
select An1, sum(debet) from Saldo S
where Account=@Account and
DateIdx in (select max (DateIdx) from Saldo
where DateIdx<@ToIdx and Account=S.Account and AnPacket=S.AnPacket)
group by An1
Структуры таблицы Saldo(Account int, DateIdx int, AnPacket int, An1 int, An2
int, An3 int, debet money, credit money)
Vladimir N. Ivanov.
ICQ: 34016466 mail to: ivn73@mail.ru WWW: http://ivn.da.ru (visit, please)
---
* Origin: Yesterday, love was such an easy game to play... (2:5030/1032.120)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/51363a8e838a.html, оценка из 5, голосов 10
|