Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Tolik Tentser                        2:5020/400     23 Feb 2001  18:58:38
 To : All
 Subject : Re: (select) -> join ?
 -------------------------------------------------------------------------------- 
 
 Hi, Vladimir Ivanov!
 
 В чреве акулы, пойманной  Thu, 22 Feb 2001 09:48:00 +0300, 
 дети капитана Гранта нашли письмо на тему '(select) -> join ?':
 
 > >> Все верно, в учебниках Microsoft прямо указано, что вложенные запросы
 > >> работают очень медленно и их надо избегать.
 >
 > TT> Ты (или учебники) сильно не прав.
 >Приведи пример. 
 
 Легко.
 
 Hапример:
 
 SELECT T1.*, T2.AAA
   FROM T1
     LEFT JOIN T2 ON T1.Id = T2.T1Id AND T2.SomeField = XXX
  WHERE ...
 
 достаточно часто (на 7) дает попытку сделать сначала отбор по
 T2.SomeField, затем TableSpool полученного результата, затем JOIN
 этого всего с T1. Причем - несмотря на UNIQUE CONSTRAINT T2(T1Id,
 SomeField)
 И достаточно часто это есть криво и медленно.
 
 Лечится - банальным переписыванием
 
 SELECT T1.*, 
   (SELECT AAA FROM T2 WHERE T1.Id = T1Id AND SomeField = XXX) AS AAA
   FROM T1
  WHERE ...
 
 Это один пример, реально - их таких весьма много
 
 >Вообще замечу, я ставил другой вопрос, как избавится от
 >(select). Был бы благодарен за совет.
 >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
 
 А никак не избавляться
 Hапиши:
 
 select An1, sum(debet) from Saldo S
 where Account=@Account and
 DateIdx = (select top 1 DateIdx from Saldo
   where DateIdx<@ToIdx and Account=S.Account and AnPacket=S.AnPacket
  order by DateIdx desc)
 group by An1
 
 Подзапрос с SELECT TOP 1 у них как раз как правило выполняется очень
 быстро
 
 Bye ...
 Тенцер А.Л.
 tolik@katren.nsk.ru
 ICQ 15925834
 --- ifmail v.2.15dev5
  * Origin: AO Katren (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mySQL и его SQL-язык   Sergey Popkov   10 Feb 2001 03:44:43 
 Re: mySQL и его SQL-язык   Timur Khanjanov   10 Feb 2001 23:58:23 
 mySQL и его SQL-язык   Sergey Bantysh   05 Mar 2001 13:10:08 
 mySQL и его SQL-язык   Konstantin Osipov   11 Feb 2001 01:08:54 
 Re: mySQL и его SQL-язык   Ilya Zvyagin   12 Feb 2001 12:13:54 
 mySQL и его SQL-язык   Eugene Zhilkin   12 Feb 2001 20:21:17 
 mySQL и его SQL-язык   Konstantin Osipov   15 Feb 2001 00:20:16 
 mySQL и его SQL-язык   Akzhan Abdulin   23 Feb 2001 12:59:03 
 Re: mySQL и его SQL-язык   Dmitry Novikov   23 Feb 2001 13:35:49 
 mySQL и его SQL-язык   Akzhan Abdulin   23 Feb 2001 20:09:11 
 Re: mySQL и его SQL-язык   Dmitry Novikov   23 Feb 2001 22:21:41 
 Re: mySQL и его SQL-язык   Ilya Zvyagin   26 Feb 2001 20:27:11 
 Re: mySQL и его SQL-язык   Dmitry Novikov   27 Feb 2001 11:53:35 
 Re: mySQL и его SQL-язык   Andrew Evdokimov   11 Feb 2001 09:22:56 
 Re: mySQL и его SQL-язык   vitus@ice.ru   14 Feb 2001 20:53:30 
 Re: mySQL и его SQL-язык   Chuveljov Andrew   16 Feb 2001 23:22:15 
 Re^2: mySQL и его SQL-язык   Andrew Evdokimov   17 Feb 2001 00:49:10 
 Невозможно (select) -> join ?   Vladimir Ivanov   17 Feb 2001 14:52:00 
 Re: евозможно (select) -> join ?   Tolik Tentser   19 Feb 2001 19:05:25 
 (select) -> join ?   Vladimir Ivanov   22 Feb 2001 10:48:00 
 Re: (select) -> join ?   Tolik Tentser   23 Feb 2001 18:58:38 
 (select) -> join ?   Vladimir Ivanov   26 Feb 2001 10:52:00 
 Re: (select) -> join ?   Tolik Tentser   27 Feb 2001 08:43:02 
 (select) -> join ?   Vladimir Ivanov   28 Feb 2001 11:16:00 
 Re: (select) -> join ?   Tolik Tentser   03 Mar 2001 09:11:58 
 Re: (select) -> join ?   Ilya Zvyagin   26 Feb 2001 11:31:52 
 Hевозможно (select) -> join ?   Dmitry Shykhman   02 Mar 2001 20:31:15 
 mySQL и его SQL-язык   Anatoly Ivanov   17 Feb 2001 00:57:54 
 mySQL и его SQL-язык   Bulat Ziganshin   12 Feb 2001 20:06:02 
 mySQL и его SQL-язык   Anatoly Ivanov   13 Feb 2001 20:55:26 
 mySQL и его SQL-язык   Bulat Ziganshin   16 Feb 2001 13:37:16 
 Re: mySQL и его SQL-язык   Ilya Zvyagin   13 Feb 2001 11:42:49 
 mySQL и его SQL-язык   Bulat Ziganshin   16 Feb 2001 13:32:20 
 mySQL и его SQL-язык   antony trofimoff   12 Feb 2001 09:44:35 
 mySQL и его SQL-язык   Mita Mikheev   12 Feb 2001 13:47:43 
Архивное /su.dbms.sql/208070977105.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional