|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
как можно оптимизировать этот запрос или никак совсем? Код: sql 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 12:15 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
korumbo1, Версия MySQL? Показывайте DDL всех таблиц, включая индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 13:16 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
Оптимизировать WHERE .. IN - почти что дохлый номер. Обычный в таких случаях совет: "Публикуйте проблему, а не свои попытки её решить". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 13:20 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
Люди извините. Оказалось это был postgresql Модератор: Тема перенесена из форума "MySQL". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 15:33 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
korumbo1, Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
Если грубо то как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 17:32 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
Mr.DKSoft, не надо учить плохому. 2тс многое зависит от индексов но навскидку для пж заменить все in Код: sql 1. 2.
на соответсв. им exists (SELECT 0 from ... и возможно заменить волатильные now() на параметры (т.е преобразовать запрос в препаред или ф-ю) . так чтобы оптимайзер мог иметь значение. или хотя бы вшить в текст конкретные литералы вместо now(). например в пж есть литерал " timestamp[tz]'now' " (что м.б. чревато при препаредах). подробно не смотрел. план бы посмотреть ещё. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 17:57 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
qwwq, А что же Вы увидели плохого ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:33 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
Mr.DKSoftqwwq, А что же Вы увидели плохого ? например cte в пж всегда материализуется поэтому имеет смысл предвыбирать (материализовать) им только редкие данные (за исключением гетерогенных запросов через fdw) а если "select Distinct anytab.id from anytable join {multyjoin}... " возвращает редкие записи, то и не нужно было размножаться записями на джойнах (и потом дистинктить ), а просто проверить exsists - ом эти редкие записи в зависимых. особенно -- при наличии нужных индексов в последних в некоторых случаях (выборки из большой таблицы дистинктного набора многократных редких значений, если нет покрывающей ключевой таблицы (т.е. ФК)) -- выгоднее задействовать рукопашный loose-индекскан для дистинкта. при наличии нужного индекса в этой большой ну и т.п. опять же "where ... and t.id in (select distinct foo.id ........ {big table|multyjoin} as foo) " часто проигрывает "where ...and exists (select 1 from {big table|multyjoin} foo where foo.id = t.id) " (когда не готово свалиться в хещджойн -- навскидку не наш случай -- мы сам ид фильтруем. его хешить в таблицу невыгодно). // и то тогда именно в пж бывает (требует проверки, могло измениться) выгоднее писать "where ... and t.id =ANY(ARRAY (select distinct foo.id ........ {big table|multyjoin} as foo) ) ". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:27 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
qwwqнапример cte в пж всегда материализуется Уже можно начинать уточнять "до версии 12" . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:04 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
Melkijqwwqнапример cte в пж всегда материализуется Уже можно начинать уточнять "до версии 12" . снкс вот это вот хорошо: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:45 |
|
|
start [/forum/topic.php?fid=53&msg=39798981&tid=1995249]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 170ms |
0 / 0 |