|
|
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Всем привет Тут клиент жалуется на отчет, которые начал отрабатываться долго. Я посмотрел на запрос и понял что надо что-то с ним делать. Запрос ужасный, исправить можно разными способами. Вот пытаюсь собрать различные способы. Сам запрос. Он отрабатывает 30.000 раз. В таблице 90.000 строк Дисковый запросов под ноль, но жрет CPU 99.9%, что и ожидаемо. ctf_record очень длинная текстовая строка. Код: 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. 70. 71. 72. 73. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 03:16:10 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Hrundel, Хоть бы один Ваш способ увидеть, а то получается, что нужно сделать Вашу работу за бесплатно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 11:54:01 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
regexpr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 12:00:06 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
1) Количество substr сокращается элементарно, у вас множество условий на последовательные символы 2) # Он отрабатывает 30.000 раз. За какой период? 3) AND ( lz_vc_ndsi_job.tcr_number IN ('0')) AND ( lz_vc_ndsi_job.transaction_code = '46') насколько селективны эти условия? есть индексы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 12:25:48 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Guest7776, Я пока думал про регулярки уменьшить прогоны. Я не прошу работу сделать. Я просто хочу посмотреть куда можно еще копать Другие способы 1. Функциональные индексы 2. Перегрупировка условий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 12:01:18 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Cheese))), Дело в том, что он отрабатывает 30000 раз но с разаными результатами. Как я понял, отчет что то обновляет в таблице и запускается заново. Все тяжко, так как нет людей, кто создал отчет. И никто его трогать не хочет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 12:03:31 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Hrundelctf_record очень длинная текстовая строка. Строка может быть и длинная. но используется только 125 первых символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 12:12:31 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. = Код: sql 1. и т.д. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 12:15:09 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
982183 Код: sql 1. 2. = Код: sql 1. и т.д. и т.п. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 13:05:25 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
А зачем запрос отрабатывает 30000 раз? Куда дели системного архитектора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 13:27:22 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
Hrundel Код: plsql 1. 2. Если все такие мёртвые ветки выкинуть, то останется всего одна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 14:10:32 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
ElicHrundel Код: plsql 1. 2. Если все такие мёртвые ветки выкинуть, то останется всего одна. + еще мелочевку дошлифовать, уменьшив число SUBSTR и сравнений, заменой Код: plsql 1. 2. 3. 4. на Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 14:41:46 |
|
||
|
Переписать ужасный запрос
|
|||
|---|---|---|---|
|
#18+
SQL*Plus, А что насчет регуляки? Одна регулярка на одно условие? Просто пытаюсь понять стоимость регулярки против нескольких substr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2016, 02:44:54 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=198&tid=1887330]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
190ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 492ms |

| 0 / 0 |
