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

Вниз

SQL   Найти похожие ветки 

 
Trofimov   (2004-08-05 14:31) [40]

Теперь такой вопрос: что лучше и почему? (вопрос ко всем)
Про execution plan MS SQL мне рассказывать не нужно


 
Sandman25 ©   (2004-08-05 14:32) [41]

3 вариант

select
claim.inc,
"order".claim,
freight.lname,
ta.lname,
tb.lname
from
claim,
"order",  
freight,
 town ta,  
 town tb
where ta.inc=freight.source
 and tb.inc=freight.target
 and claim.inc="order".claim
 and "order".freight=freight.inc


 
Sandman25 ©   (2004-08-05 14:33) [42]

>Теперь такой вопрос: что лучше и почему? (вопрос ко всем)

Вопрос не имеет смыла - запросы не эквивалентны :)
Для эквивалентности придется воспользоваться Outer join


 
Sandman25 ©   (2004-08-05 14:37) [43]

select
claim.inc,

(select "order".claim from "order" where claim.inc="order".claim),

(select freight.lname from freight where freight.inc =(select "order".freight from "order" where claim.inc="order".claim)),

source = (Select town.lname from town where town.inc =
(select freight.source from freight where freight.inc =(select "order".freight from "order" where claim.inc="order".claim))),

target = (Select town.lname from town where town.inc =
(select freight.target from freight where freight.inc =(select "order".freight from "order" where claim.inc="order".claim)))

from
claim

Надеюсь, после просмотра этого select станет очевидно, что не стоит пользоваться вложенными select, если можно воспользоваться join :)


 
Trofimov   (2004-08-05 14:38) [44]

Ну 3 вариант я согласен пока что лучший, но что ж мне все голову трепали про внутреннее соединение когда можно было так сделать?


 
Trofimov   (2004-08-05 14:40) [45]

мой вывод - внешнее соединение наиболее оптимально


 
Johnmen ©   (2004-08-05 14:42) [46]

Потому, что внутреннее соединение (JOIN) = 3 варианту.
Но с JOIN читабельней.


 
Danilka ©   (2004-08-05 14:46) [47]

[46] Johnmen ©   (05.08.04 14:42)
Кому как, я больше к 3 варианту привык, для меня он читабельней. :)


 
Trofimov   (2004-08-05 15:43) [48]

Ну а работает что быстрее join или where


 
Trofimov   (2004-08-05 16:27) [49]

разве связка по типу join не будет работать гораздо быстрее связки по типу where... ? На скорость доступа к результирующему НД это не повлияет, но сам запрос будет выполняться быстрее. По крайней мере, в парадоксе или IB это так (при прочих равных условиях).


 
Johnmen ©   (2004-08-05 16:33) [50]

>Ну а работает что быстрее join или where

2 = 2
Что больше 2 или 2 ?
:)
Есть, правда, ещё такая вещь, как парсер и оптимизатор запросов. У них можно спросить. У правильных - одинаково.


 
Trofimov   (2004-08-05 17:01) [51]

Ну а тогда какой смысл создавать было JOIN если они с WHERE аналогично работать будут?


 
Johnmen ©   (2004-08-05 17:07) [52]

Аналогично только в данном конкретном случае.
И джоин он разный, понимаешь, бывает...


 
Trofimov   (2004-08-05 17:11) [53]

Ты имеешь ввиду inner left right natural cross и т.п?


 
Trofimov   (2004-08-05 17:13) [54]

Тогда я согласен. Вообщем сегодня свой вопрос я окончательно решил. Всем большое спасибо.



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

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

Наверх




Память: 0.56 MB
Время: 0.024 c
1-1092656987
Diman
2004-08-16 15:49
2004.08.29
RichEdit


1-1091979772
nika_ufc
2004-08-08 19:42
2004.08.29
извлечение информаций из фонта


14-1092041178
inic
2004-08-09 12:46
2004.08.29
В Delphi была горячая клавиша для вставки в редактор


11-1080063840
Delphi5.01
2004-03-23 20:44
2004.08.29
Chem mojet bit vizvana oshibka: ExptIntf.dcu


14-1092070430
MC
2004-08-09 20:53
2004.08.29
Помогите найти загадки?