Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

Странно работает запрос.   Найти похожие ветки 

 
Семен Кевларвестов   (2008-11-26 18:36) [0]

Доброго вечера!

В TQuery есть запрос вида:

select T1.Table1ID,
        T2.Table2ID,
        T3.Table3ID
from table1 T1 (nolock)
left join table2 T2 (nolock) on T2.Table2ID = T1.Table2ID
left join table3 T3 (nolock) on T3.Table3ID = T2.Table3ID
where T2.Table2ID = @SomeParam1 and
        T3.Table3ID = @SomeParam2

и в таком виде это работает очень медленно,

но если сделать так:


select T1.Table1ID,
        T2.Table2ID,
        T3.Table3ID
from table1 T1 (nolock)
left join table2 T2 (nolock) on T2.Table2ID = T1.Table2ID
left join table3 T3 (nolock) on T3.Table3ID = T2.Table3ID
where T1.Table2ID = @SomeParam1
        T3.Table3ID = @SomeParam2


то все начинает работать очень быстро.

В QueryAnalyzer все работает одинаково, по крайней мере я разницы не заметил. Почему так?


 
clickmaker ©   (2008-11-26 18:42) [1]

потому что во втором случае сначала отбираются записи в Т1, а потом уже накладывается джоин
в QueryAnalyzer, возможно, хороший парсер запросов, он приводит первый вариант к более оптимальному



Страницы: 1 вся ветка

Текущий архив: 2009.01.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.017 c
15-1226908281
AIK
2008-11-17 10:51
2009.01.11
Чё то непонятно с округлением round


15-1226924798
@!!ex
2008-11-17 15:26
2009.01.11
Что это за музыка?


15-1226277137
Abcdef123
2008-11-10 03:32
2009.01.11
Верно ли это?


2-1227985085
Надуев Алексей
2008-11-29 21:58
2009.01.11
Как можно осуществить в Delphi запуск программ


15-1226506062
Наше имя
2008-11-12 19:07
2009.01.11
Курсы английского в Москве...