|
Эффективность
|
|||
---|---|---|---|
#18+
Привет экспертам! Может кто-то "на глаз" сказать, какой подход лучше? Из таблицы нужны данные с максимальной датой. В первом подходе берётся max с группировкой и подцепляется оригинальная таблица: Код: plsql 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.
Во втором - max берётся аналитичесой функцией: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
В третьем используется row_number и сортировка: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
И в последнем - подзапрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Понятно, что все вернут одинаковые данные. Непонятно, какой будет работать быстрее... Если чисто теоретически этого сказать нельзя, то как бы это измерить практически? Српасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 14:47 |
|
Эффективность
|
|||
---|---|---|---|
#18+
Вопросы эффективности крайне сложно обсуждать в отсутствие конкретных объектов - таблиц, индексов, распределения данных в них, целей оптимизации. Менее важно, но иногда решает информация о характере фоновой нагрузки, имеющихся ресурсах и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 15:53 |
|
Эффективность
|
|||
---|---|---|---|
#18+
Конечно надо смотреть на конкретных структурах и данных. +ещё вариант в копилочку Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 16:25 |
|
Эффективность
|
|||
---|---|---|---|
#18+
Как видно, таблица там одна, 10 миллионов строк, распределение равномерное, цель - скорость. На счёт остального скажем так - при прочих равных... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 17:48 |
|
|
start [/forum/topic.php?fid=52&msg=39912496&tid=1881679]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 407ms |
0 / 0 |