|
Замедлился запрос
|
|||
---|---|---|---|
#18+
После вставки подзапроса с inner join Код: sql 1.
запрос сильно замедлился. Подскажите можно ли как-то избежать этого? Код: 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.
З.Ы. firebird 2.5 + fibplus а дельфи ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 17:29 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010З.Ы. firebird 2.5 + fibplus а дельфиЭто не повод постить в форум по MySQL. Модератор: Тема перенесена из форума "MySQL". ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 20:22 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010, ужас. За такие запросы надо линейкой по пальцам ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 20:44 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010, ЧТО ЭТО??? какой-то чудовищный бессмысленный копипаст. Предлагаю сначала убрать все повторы, а потом уже задавать вопрос про "замедлилось". К слову, при "замедлилось" надо смотреть на план запроса, но в отношении исходного запроса - проще убиться, чем разбирать этот план. Поэтому, запрос сначала надо сократить. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
p.s. select (select from (select first 1 - это же застрелиться можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 21:14 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Такое впечатление, что исходный запрос (как пример, видимо) писал один разраб, а копипастил без нужной квалификации - другой(ие). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 21:26 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Симонов Денис, За что конкретно? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 08:40 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
kdv, почему бессмысленный? я же говорю, все работало прилично и довольно быстро (3-5 сек) до вставки еще одно подзапроса с inner join - время выросло до 20 сек. Я поэтому и спрашиваю - какие варианты есть кроме кучи подзапросов? Я так понимаю это сделано чтобы не было кучи inner join. Как по другому то сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 08:43 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, что не так с копипастой? Скопировал напрямую из Delphi. Или имеешь в виду что не полный текст? Или что дельфяной код в скульные теги взял? Каюсь, очень спешил. Вот так нормально будет смотреться? Код: pascal 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 08:47 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
В общем главный вопрос такой - что делать то, если нужен еще один подзапрос и именно из 2 таблиц? Желательно баз глобального переписывания запроса - вот в чем загвоздка ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 08:52 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010В общем главный вопрос такой - что делать то, если нужен еще один подзапрос и именно из 2 таблиц? Желательно баз глобального переписывания запроса - вот в чем загвоздка Ну раз "без глобального переписывания запроса" то размышлять над Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 09:32 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
m7m, вот и думаю, может кто подскажет - есть варианты обойтись как-то без inner join в этом конкретном подзапросе и соответственно не менять весь запрос целиком или все же придется изменять весь запрос? В принципе есть выход - слить таблицы tableasna и asnakods в одну. Точнее, расширить asnakods, чтобы вся нужная инфа была там и динамически ее обновлять в момент обновления tableasna, так как asnakods и tableasna взаимосвязаны и изменяются время от времени независимо друг от друга, поэтому избавиться от одной из низ не получится. Тогда подзапрос будет идти к одной таблице и inner join не понадобится. Так наверно и сделаю, всем спасибо за внимание ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 09:52 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010, за то что запрос написан без попыток включить головной мозг, и даже если эффективен, то как минимум трудно читаем. Массовое применение first 1 настораживает. Там где ты присоединяешь подзапрос по ID, например Код: sql 1.
если ID это первичный ключ, то first 1 на фиг не упал. Во вторых, sprtovara можно явно спустить в секцию FROM основного запроса присоединив её по LEFT JOIN. Там где подзапросы сделаны не по ID фраза first 1 всё равно напрягает. Т.е. получается что потенциально твои подзапросы могут вернуть более 1 записи, и ты берёшь из них первую попавшуюся. Как то странно это. Обычно first/rows имеют смысл вместе с ORDER BY, там хоть результат предсказуем, да и есть парочку задач где это эффективно работает. 4 раза написать почти одинаковый подзапрос отличающийся только именем извлекаемого поля это конечно сильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 09:56 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Симонов Денис, Ок, спасибо за конструктив, над этим уже можно серьезно подумать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 10:07 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010, да просто надо всю эту собранную портянку перетащить в IBE и постепенно переписывать запрос, пока он не упроститься максимально. Если потом останется что-то медленное, то медитировать над этим в любом случае будет проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 10:15 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Да... я бы подумал о процедуре, или execute block или хотя бы with query as Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 13:05 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Еще попытка Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 13:10 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
fraks, это всё боязнь джойнов с процедурой. Но на мой взгляд, в исходной задаче криво - зачем сверху суб-селектами навешивать к выборке из процедуры такое количество дополнительных данных из разных таблиц? Может, пора процедуру переписать, или написать еще одну? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 13:17 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
kdv, + не знание современных возможностей SQL Firebird, в частности CTE + не понимание реляционный алгебры. Я уже сказал по поводу first 1 и выборке по ID ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 13:26 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
Ок, всем спасибо, попробую улучшить. Запросы все был написаны до меня, много лет назад. Я лишь пытаюсь их модифицировать малой кровью так как и без этого туева хуча задач ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 14:21 |
|
Замедлился запрос
|
|||
---|---|---|---|
#18+
арт2010После вставки подзапроса с inner join Код: sql 1.
запрос сильно замедлился. Подскажите можно ли как-то избежать этого? Код: 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.
З.Ы. firebird 2.5 + fibplus а дельфи Если Вы уверены, что тормозит конкретный подзапрос, то надо разбираться с ним. Отдельно его запустить и посмотреть статистику, план и т.д. Может банально индекса какого не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 15:10 |
|
|
start [/forum/topic.php?fid=40&msg=39699699&tid=1560993]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 304ms |
total: | 465ms |
0 / 0 |