Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
1-8437
ss300
2003-10-22 07:17
2003.11.03
Изменение шрифта в канвасе


14-8610
KSergey
2003-10-15 08:03
2003.11.03
Товарищи!


1-8371
Dolphin
2003-10-22 08:51
2003.11.03
Form.Icon


1-8494
АСт
2003-10-23 22:07
2003.11.03
Компонент Memo


3-8289
MV-GROB
2003-10-09 19:02
2003.11.03
Ошибка Index not found ? при попытке update dBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский