|
|
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuuк БД я полноценного доступа не имею. Насколько неполноценен твой доступ? Ты не в состоянии послать запрос к системным вьюхам чтобы проверить наличие и статус нужных твоему запросу индексов? Ryuuразумеется, я все вышеупомянутое знал. Так почему написал запрос, который совершенно не использует индексы? Вредитель? Мазохист?.. RyuuОднако, когда в один день "ломается" связка таблиц, которая исправно работала несколько лет, сказать в чем причина сложно. То есть для тебя знать задуманный собой способ выполнения запроса и найти отличие от реального - сложно? В детском саду есть такое упражнение для развития мозга: "найди 10 отличий между картинками". Стоило больше тренироваться, наверное. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 13:38 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
DВАвсе-таки ставлю на хинт cardinality ))охъ, все таки вынуждаешь ответить полнее... 1. я оооочень сомневаюсь, что повлияло изменение кардинальности подзапроса с деревяшкой(MY_PC), если это эксплейн с продуктивной базы, то врядли изменение до 3364 могло оказать такое воздействие. Гораздо более вероятно, что повлияло изменение статистик по TP_ZAG/TP_ZAG_XXX, в больше степени влияющих на получение запредельных E-ROWS=205G 2. да, конечно, можно обойтись одним хинтом cardinality, но воткнуть таких хинтов придется много и текущей информации слишком мало, чтобы выставить правильные/подходящие значения везде 3. с точки зрения упрощения задачи, даже при отсутствии плана в AWR или отсутствии пака(судя по тому, что они используют partitioning views, врядли у них приобретены diagnostics+tuning), можно просто вернуть/посмотреть старую статистику и получить старый план 4. если уж не менять запрос, то я бы предпочел полноценно хинтовать(или закреплять профилем), то есть полным и однозначным набором хинтов: leading+use_xxx+index/full и тд 5. тексты вьюх, предикаты, алиасы и проекции не приведены, и без этой информации нормально проанализировать не получится, например 5.1 в части Код: 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. непонятно из какой таблицы берутся vargrp, varnum, SN 5.2 каковы предикаты внутри ZEBRA_ALL_SECT 5.3 откуда там outer джойны, группировки, сортировки - в предоставленном запросе их нет. Это особенно хорошо видно, если схлопнуть MY_PC и ZEBRA_ALL_SECT в плане Код: 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. 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. 5.4 без статистик и предикатов непонятны кардинальности и имеет ли смысл по многу раз начитывать одни и теже таблицы 5.5 без ddl таблиц с констрейнтами трудно понять, чего вообще автор хочет, например, если part_aid уникален, то "sysdba.articles art" джойнится зря(а если не уникален, то джойн бестолково размножает строки), т.к. исходя из текста запроса, это условие по нему можно было сразу указать в start with: Код: 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. то есть транзитивно my_pc.root_part_aid = art.art_id, а root_ - это корни дерева, и кроме предиката "art.purchased IS NULL" больше причин джойнить art нет. А так как деревяшка идет по инлайн вью, которая тоже тупо джойн(причем мы еще не знаем деталей остальных предикатов в ней), то можно просто внутрь просунуть предикат "pc.purchased IS NULL" 5.6 такая же хрень и с Код: plsql 1. 2. 3. 4. т.к. tobj.f_art_id - это тоже равно my_pc.root_part_aid ----- устал пока писать, потом продолжу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 13:43 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
xtender, я вам благодарен, что вы пытаетесь разобраться. Правда. Но есть один нюанс, который я не сказал, вернее, который упоминался, но он не очевиден. План запроса... от другого запроса, более тяжелого. Выложил лишь "ядро", причем несколько видоизмененное (не все поля вытащил, там где стоит tobj.*, некоторые данные есть только в тех "бессмысленных", на первый взгляд, таблицах). Для теста он более чем подходил, так как уже там сыпался. А план... как я уже упоминал, я не планировал разбираться в запросе или ещё в чем. Выложил тот, что был, и смотрел я по таймингам. Там, к слову, всё связано по индексам и нужно. Лишнего нет. Думал, мне укажут на настройку или параметр базы. На худой конец, скажут, что дерьмо случается и нужно переписать запрос, баг. Сейчас я этим вопрос не занимаюсь от слова совсем, и не планирую. Просто поглядываю тему, отчего и неудобно немного. И да, поля из таблицы pc. ZAS - это вьюшка, через union all объединяет разные таблицы, решение такое себе, но интермех альтернативу не предоставляет. И да, part_aid уникальны. В общем, если вы решили "оценить" сам запрос, занятие весьма спорное. Впрочем, я вас не от чего не отговариваю. -2- , я со второй страницы говорю, что тема уже неактуально и я в ней более не разбираюсь, лишь отвечаю на провокации. Ума, видимо, проигнорировать всё же не хватает. env, как вы с Dimitry Sibiryakov общаетесь в своей высокомерной манере, так вам и отвечаю. Поверьте, если бы мне в реале открыто хамили, то я точно так же бы в реале послал наглеца погулять. На этом наше "общение" с вами закончено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:29 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ох, пришлось зарегестрироваться, чтобы внести небольшую правку. Всё моя невнимательность. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:43 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuuкажут, что дерьмо случается и нужно переписать запрос Тебе это говорят чуть ли не с первой страницы. Но ты упорно игнорировал это и RyuuДумал, мне укажут на настройку или параметр базы Как настройка или параметр повлияет на другие твои запросы, думать за тебя, видимо, тоже должны другие. RyuuПлан запроса... от другого запроса Вот уж точно, "у меня в подвале странный стук". Ryuuenv, как вы с Dimitry Sibiryakov общаетесь в своей высокомерной манере, так вам и отвечаю Т.е. в реале тоже на "высокомерие" отвечаешь хамством и матом? Ну хоть сам признал. Ещё есть шанс обрести воспитание и исправить речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 17:31 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39743728&tid=1883074]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
193ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 506ms |

| 0 / 0 |
