![]() |
![]() |
![]() |
|
Что быстрее 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
|
Читал статью где-то.
При большом количестве получаемых полей оптимально группировать.. если полей мало - дистинкт. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |