Имя: Пароль:
1C
 
Что быстрее SELECT DISTINCT или GROUP BY
0 Ivan093
 
11.05.10
11:22
Собственно сабж, кто подскажет?
1 Aleksey_3
 
11.05.10
11:22
А проверить?
2 Aleksey_3
 
11.05.10
11:22
Вася скажет первое, Петя второе. И кому будешь верить?
3 Лефмихалыч
 
11.05.10
11:23
(0) вообще или для какой-то конкретной задачи
4 Лефмихалыч
 
11.05.10
11:23
+(3)?
5 1c_asp
 
11.05.10
11:24
Мне думается что оптимизаторы запросов современных SQL серверов не настолько тупы, чтобы давать разницу на идентичных операциях
6 AndOne
 
11.05.10
11:27
Да тут нужны замеры, при этом необходимо большиые выборки использовать.
7 chelentano
 
11.05.10
11:27
имхо, SELECT DISTINCT
8 Armando
 
11.05.10
11:27
Методически правильнее использовать DISTINCT
9 Armando
 
11.05.10
11:29
+(8) и проще для понимания, отладки, сопровождения и т.д.
10 fisher
 
11.05.10
11:29
(5) +1
ИМХО, для простейшего запроса план запроса вполне может получиться идентичным. В более сложных запросах всё сильно зависит от запроса и причуд оптимизатора. Заранее не скажешь.
Поэтому:
(8) +1
Это и читабельней и оптииизатору доп. инфа.
11 Ivan093
 
11.05.10
11:30
Проверить негде, очень большой таблички нет :)
Нужно просто в табличке с двойными строками убрать дубли.
12 fisher
 
11.05.10
11:31
(11) Тогда что ты паришься? DISTINCT именно для этого и придуман.
13 AndOne
 
11.05.10
11:31
(8) +1 Не проверял, но использую SELECT DISTINCT
14 dk
 
11.05.10
11:31
(11) если операция одноразовая, то вот тебе не пофиг?
15 Лефмихалыч
 
11.05.10
11:33
(11) то есть, тебе ответ на (0) по сути и не нужен, раз применить его некуда.
16 Ненавижу 1С
 
гуру
11.05.10
11:36
GROUP BY и DISTINCT это идеологически разные операции. Совпадение их применения (при отсутствии агрегации) это вырожденный случай. Следует применять DISTINCT. Все ИМХО.
17 Ivan093
 
11.05.10
11:43
(15) На данный момент по сути нет, но на будущее неплохо бы и знать, наверное... Для расширения кругозора, так сказать :)
18 wPa
 
11.05.10
11:54
(0) Если нет агрегатных ф-ций - смысла в агрегировании нет.
я за DISTINCT
19 also
 
11.05.10
11:54
(16) +1. По мне так нет смысла использовать group by, если не считаешь функции
20 DmitrO
 
11.05.10
12:01
Вот ведь развели тему на 20 постов :)
Посмотрите план запроса и увидите, что предложение DISTINCT сервер отрабатывает с помощью GROUP BY.
Т.е. для внутреннего движка сервера не существует ни какой опрации DISTINCT, она придумана чтобы запросы читать было легче.
Поэтому работают они по скорости одинаково.
21 Широкий
 
11.05.10
12:02
Читал статью где-то.
При большом количестве получаемых полей оптимально группировать.. если полей мало - дистинкт.