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

Вниз

Какой запрос ОПТИМАЛЬНЕЕ   Найти похожие ветки 

 
Sectey ©   (2003-10-14 11:05) [0]

уменя есть таблица:
Client
id - код клиента
subid - код группы клиентов
name - имя клиента

я знаю код клиента мне необходимо выбрать всех клиентов входящих в туже группу что и извесны.

Я знаю два способа написания запроса, Но не знаю какой из них ОПТИМАЛЬНЕЕ.

SELECT c.id, c.name from client c
WHERE c.subid in (SELECT cc.subid FROM client cc WHERE cc.id = :id GROUP BY cc.subid)

или

SELECT с2.id, с2.name
FROM Client с1 INNER JOIN Client с2 ON с1.subid = с2.subid
WHERE (с1.id =:id)


 
Reindeer Moss Eater ©   (2003-10-14 11:06) [1]

План конкретного сервера расскажет про это


 
Sectey ©   (2003-10-14 11:07) [2]

>Reindeer Moss Eater ©

???


 
Reindeer Moss Eater ©   (2003-10-14 11:08) [3]

!!!


 
Sectey ©   (2003-10-14 11:13) [4]

>Reindeer Moss Eater ©
>План конкретного сервера расскажет про это

Что это значит?


 
asp ©   (2003-10-14 11:14) [5]

DBMS?


 
Johnmen ©   (2003-10-14 11:15) [6]

SELECT c.id, c.name from client c
WHERE c.subid = (SELECT cc.subid FROM client cc WHERE cc.id = :id)


 
Sergey13 ©   (2003-10-14 11:15) [7]

Скорее всего будет
SELECT c.id, c.name from client c
WHERE c.subid=(SELECT cc.subid FROM client cc WHERE cc.id = :id)


 
Anatoly Podgoretsky ©   (2003-10-14 11:18) [8]

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


 
Sergey13 ©   (2003-10-14 11:25) [9]

2Johnmen © (14.10.03 11:15) [6]
8-) Обогнал.

2Anatoly Podgoretsky © (14.10.03 11:18) [8]
То же не факт (данные в кэше сервера). План то он понадежнее.


 
asp ©   (2003-10-14 11:44) [10]

И все же неплохо было бы знать СУБД.
Эксперимент на DB2 показал, что на оба запроса формируется одинаковый план. И оба запроса оптимизируются к:

SELECT Q2.ID AS "ID"
FROM EXP.GOODS AS Q1, EXP.GOODS AS Q2
WHERE (Q1.ID = :?) AND (Q2.GROUP_GOODS = Q1.GROUP_GOODS)


Пардон за измененные наименования таблиц и столбцов :)


 
Reindeer Moss Eater ©   (2003-10-14 11:49) [11]

Эксперимент на DB2 показал, что на оба запроса формируется одинаковый план.

Эксперимент проведен на таблицах не автора вопроса. Поэтому дает не обязательно адекватный результат


 
asp ©   (2003-10-14 11:56) [12]

Reindeer Moss Eater © (14.10.03 11:49) [11]>
В общем случае зависит от фрагментирования таблиц, набора индексов и результатов статистики.


 
Reindeer Moss Eater ©   (2003-10-14 11:58) [13]

Поэтому и было сказано [1]


 
asp ©   (2003-10-14 12:20) [14]

Но это уже IMHO текущая работа администратора БД (статистики...) по поддержке базы данных. Вопрос уходит в сторону сопровождения БД.



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

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

Наверх




Память: 0.49 MB
Время: 0.026 c
14-8654
Gorlum
2003-10-14 11:30
2003.11.03
Про создание карт


6-8570
Jacob
2003-09-05 16:21
2003.11.03
Работа с Internet Explorer ом


8-8544
Freddy
2003-07-03 10:21
2003.11.03
Графическое отображение WAV-файла на экране


1-8407
dimon4386
2003-10-24 15:47
2003.11.03
Ассемблер


14-8582
Rouse_
2003-10-15 21:39
2003.11.03
Ммм да. От алисы с косой челкой до моряка....