|
|
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
DDL: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Статистика по этим вариантам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Может, есть таки смысл подправить эвристику для варианта, когда селектятся все строки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2014, 02:23:04 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
Не понял, почему именно все строки, если ORDER тут всегда проигрывает. Кстати, DESC индекс "не подходит". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 10:49:33 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
WildSeryНе понял, почему именно все строки, если ORDER тут всегда проигрывает. Кстати, DESC индекс "не подходит".Как это "почему именно ВСЕ" ? where-кляузы ведь нет, вот и все . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 13:05:48 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
Таблоид, И что теперь, описывать отдельно случаи, когда все, а когда не все? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 13:19:12 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
Таблоид, оно пока и для ORDER BY так Код: sql 1. 2. 3. Код: plaintext 1. 2. но для соединений нескольких таблиц сейчас оптимизатор может менять порядок соединения Код: sql 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. однако Код: sql 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. теперь к первому запросу припишем ограничитель ROWS Код: sql 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. как видим изменился порядок соединения таблиц и появилась навигация по индексу к сожалению пока rows просто даёт подсказку что цель оптимизатора изменена, т.к. если написать вот так Код: sql 1. 2. 3. 4. 5. то план не меняется, хотя сам запрос возвращает всего 164 записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 13:25:38 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
Таблоид, да и ещё одно ORDER BY на сегодняшний день используется во многих приложениях без кляузы ROWS и отрабатывает быстро за счёт возврата только первых записей, если поведение изменить, то многие старые приложения придётся модифицировать. С GROUP BY наверное это не так актуально. Кроме того не забывай что план SORT может быть весьма требователен к памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 13:29:21 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
WildSeryИ что теперь, описывать отдельно случаи, когда все, а когда не все?Нет, конечно. Но если есть индекс по группируемому полю и критерий выборки (where) показывает, что, там будут отобраны 90% строк, или этого критерия вообще нет (и наличие индекса, след-но, можно не учитывать) - тогда логичнее натуралом идти. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 13:38:57 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
Таблоид, я думаю это будет не раньше того момента когда оптимизатор научится оценивать мощность множеств во всех случаях, а не только простых ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 13:43:59 |
|
||
|
group by X по *всей* таблице и наличии индекса по X: зачем его юзать?
|
|||
|---|---|---|---|
|
#18+
WildSeryИ что теперь, описывать отдельно случаи, когда все, а когда не все? Distinct у нас по этой же причине перестал использовать план table order index. а вот group by пока нет. Надо какие-то коэффициенты по кардинальности таблиц вводить, что ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 17:58:12 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38607172&tid=1563730]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
136ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 417ms |

| 0 / 0 |
