|
|
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Хотелось бы задать следующий вопрос. Но, прежде всего: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 0PL/SQL Release 12.1.0.2.0 - Production 0"CORE 12.1.0.2.0 Production" 0TNS for Linux: Version 12.1.0.2.0 - Production 0NLSRTL Version 12.1.0.2.0 - Production 0 Итак. Есть некий запрос, который еще две недели назад работал хорошо. Потом что-то случилось. Лично я грешу на наших админов, что ковырнули настройки БД, в чем они конечно же не признаются. Как результат, запрос стал работать на несколько порядков дольше, а именно, время работы увеличилось с двух минут до двух часов. Само проседание начинается, когда связывается два "куска", несколько отличные от оригиналов, но полностью удовлетворяют условиям тестирование, и которые в отдельности работают быстро, то есть исправно. автор Код: 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. автор Код: 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. Собственно при их соединении и начинаются проблемы. автор Код: 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. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. Хочу заметить, что если в связки я заменю my_pc.root_part_aid на my_pc.root_proj_aid, где уникальность значительно меньше, следовательно, как и самих данных, всё работает, как и раньше, то есть быстро. А потому я считаю (разумеется, могу и ошибаться), что всё дело в кол-ве данных. К слову, сами поля part_aid и proj_aid индексные, и если подставлять связку с proj_aid и part_aid они ведут себя точно также, как и root_proj_aid и root_part_aid соответственно. Подскажите, пожалуйста, какие настройки БД отвечают за подобное, или другие альтернативные методы решения проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:01 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Прошу прощение за автор, перепутал со спойлером. Поторопился. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:02 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuuдругие альтернативные методы решения проблемы. Проанализировать план не предлагать?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:04 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а что толку? Есть таблица а, есть пвседотаблица б, при их соединении оптимизатор уходит в запой. Как план в этом деле может помочь? Или я чего-то не знаю / не понимаю? Если же речь идёт о трассировке и о том, откуда и куда именно валяться данные, то боюсь, что здесь я бессилен, у меня этого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:08 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
RyuuКак план в этом деле может помочь? Он покажет чем именно сервер занят два часа. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:11 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а, это. Есть такое у меня. SORT ORDER BY | | 205G| 403T| 509T| 13G (1)|142:25:29 | 30M| 1999K| 27M (0)| ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:13 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
explain plan Код: 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. 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. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:15 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuu, Поправьте меня если я ошибаюсь, Вы сначала count_pc собераете в строку что-бы ... потом строку разобрать и сделать sum()? Это конечно не запрещенно - но зачем? Если есть пример, дайте его ... но я пока не понял в чем смысл, собрать через * что-бы потом парсить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 15:20 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, вы невнимательны, и пишите не в тему. Вопрос был не об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 15:25 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, RyuuMaximaXXL, вы невнимательны, и пишите не в тему. Вопрос был не об этом. ему параметры нужны )) Ведь не может же быть такое, чтоб работал две недели, а на третью сам по себе перестал наверняка есть какие-то хитрые параметры, которые злобные админы постоянно дергают и не дают говнокоду прилично работать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 15:55 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
DВА, *пустил слезу умиления. Вы правы, я хочу, чтобы мой говнокод снова стал работать в пределах двух минут, а не часов. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 16:15 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
RyuuDВА, *пустил слезу умиления. Вы правы, я хочу, чтобы мой говнокод снова стал работать в пределах двух минут, а не часов. :) поищу тут что-нить полезное http://ru.harrypotter.wikia.com/wiki/Бытовые_заклинания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 16:26 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
RyuuDВА, *пустил слезу умиления. Вы правы, я хочу, чтобы мой говнокод снова стал работать в пределах двух минут, а не часов. :) Если это единственная хотелка - удаляете данные из ZEBRA_ALL_SECT (чем больше удалите - тем быстрее будет) и все полетит. Чем то напомнил старый анекдот Разговор пользователя (П) и специалиста (С): С: Что у вас за беда? П: У меня идет дым из блока питания. С: Вам нужно заменить блок питания. П: Не может быть! Мне нужно просто поправить какой-то файл! С: Помилуйте - у вас неисправный блок питания! Он должен быть заменен! П: Ни за что. Мне сказали, что нужно добавить какую-то команду в autoexec.bat или config.sys. Вы мне только скажите - какую. Проходит десять минут. Пользователь уверен в своей правоте. Специалист задолбан в доску. С: Извините... мы обычно не говорим этого нашим клиентам, но существует недокументированная команда ДОСа, которая решит ваши проблемы. П: Так я и знал! С: Добавьте команду LOAD NOSMOKE.COM в конце файла CONFIG.SYS, и сообщите, как оно - поможет, или нет. Проходит десять минут. П: Не помогло! Дым все равно идет. С: Какая у вас версия ДОСа? П: 6.22 С: Ааа! Вот в чем дело. В эту версию NOSMOKE не входит. Позвоните в Микрософт, попросите их выслать вам нужный драйвер. Проходит час. П: Знаете, мне нужен новый блок питания. С: Почему вы так решили? П: Я позвонил в Микрософт, и они стали расспрашивать меня о том, кто производитель моего блока питания. С: И что? П: Выяснилось, что мой блок питания не совместим с драйвером NOSMOKE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 16:31 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ну или как вариант - прогнуться перед админами, извиниться за высказанные подозрения в порче говнокода и просьба найти и закрепить план запроса, который был две недели назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 16:42 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
DВА, они хотели закрепить план запроса, но не смогли. Причину не назвали. Или с планом всё хорошо, но почему-то проседать он от этого не перестал, либо... я не знаю. Но у меня от этого, если честно, подгорает. :-\ Ps. Спасибо за ссылку, посмотрю завтра. Не понял, как "чистка" вьюшки поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 16:51 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
А, ну да... заклинания. Хм. Такое, пожалуй, вечером почитаю. Да. Какой-нибудь фанфик. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 16:52 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
авторЛично я грешу на наших админов, что ковырнули настройки БД, в чем они конечно же не признаются Я на такое всегда отвечаю так - у меня под крышкой стола есть три кнопки, "Все не работает", "Все работает", "Все работает отлично". В зависимости от своего настроения я нажимаю соответствующую кнопку и все работает или не работает :-). Последний случай когда я это говорил был буквально вчера - пришли ко мне чудаки из BI с жалобой на то, что вдруг все перестало работать и с вопросом "А не подкрутил ли что-то в базе злобный DBA чтобы бедняжкам из BI нескучно было?". А то что четыре картезианских множества из двух таблиц объединенных при помощи UNION ALL, в сумме дающих 8 миллиардов записей, это не самый лучший вариант запроса им как-то в голову не пришло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 22:49 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
flexgen, вот только такой запрос изначально бы работал хреново. В любом случае, думаю, что я разобрался. У них маленькое значение для переменной сортировки под сессию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 08:05 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuu, из вашего поста не вполне понятно, съехал ли у вас план для запроса, полностью идентичного тому, что был две недели назад, или же запрос претерпел изменения, которые вы считаете незначительными, но СУБД имеет на этот счёт свое мнение. в любом случае, попросите админов сделать отчет real time sql monitor. в нем будет четко видно, на что фактически уходит время при выполнении запроса. после этого можно будет о чем-то рассуждать, и делать какие-то выводы. без этой, или какой-то другой фактической информации, все, чего вы дождетесь в ответ - спекуляции и гадания на кофейной гуще. то, что вы уже показали здесь - это прогноз самой субд, который по ряду причин часто имеет мало общего с реальностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 08:35 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuu, План, по которому выполняется запрос действительно такой? И всё ли хорошо со статистикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 09:51 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuu, И есть большие сомнения, что это план приведённого запроса. Как раз из-за сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 09:54 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
RyuuЕсть некий запрос, который еще две недели назад работал хорошо. Потом что-то случилось. Лично я грешу на наших админов Разумеется за это время ни одной новой записи в таблицы не попадало, объёмы данных не менялись, статистика не трогалась никем и ничем, никаких доработок на бд не было, не решалось никем другим никаких других проблем производительности и т.п., ох уж эти злобные админы, которые просто так всё ломают! Скорее всего план твоего запроса держался на границе merge/unnest за счёт статистки, и как только она перешла грань - произошло слияние подзапроса и "первого куска". Как вариант, прибей гвоздями материализацию подзапроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 10:02 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
envRyuuЕсть некий запрос, который еще две недели назад работал хорошо. Потом что-то случилось. Лично я грешу на наших админов Разумеется за это время ни одной новой записи в таблицы не попадало, объёмы данных не менялись, статистика не трогалась никем и ничем, никаких доработок на бд не было, не решалось никем другим никаких других проблем производительности и т.п., ох уж эти злобные админы, которые просто так всё ломают! Скорее всего план твоего запроса держался на границе merge/unnest за счёт статистки, и как только она перешла грань - произошло слияние подзапроса и "первого куска". Как вариант, прибей гвоздями материализацию подзапроса. курсоры из кэша не вытеснялись и адаптивные фичи оптимизатора не баламутили ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 14:10 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ryuu, Я конечно не внимателен, да и пишу не в тему и наверно многово не успею понять но для конкретно ЭТОГО запроса который Вы хотите ускорить ... Код: plsql 1. 2. 3. Т.е. Вам нужены только данные из sysdba.tc_obj2link tobj, условие по соединиению AND my_pc.root_part_aid = tobj.f_art_id итого Вы строите структуру из 5 subquery для того чтоб размножить данные tobj для количества кустов? Подход конечно ... "верный", но как по мне очень громоздкий. Если Вы собераетесь использовать данные my_pc в дальнейшем, а это уже другой селект: Из Ваших утверждений proj_aid и part_aid что это индексированные поля, то не проще пробежать по ним к листу (зная tobj.f_art_id), а не строить все дерево. Ну и если понадобиться сумма произведений еще раз пробежаться наверх (это 1-2 подзапроса) смотря что надо найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 15:55 |
|
||
|
Проседание времени выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Смотрите. Тут ребята много разных дельных советов дали. Это все хорошо и правильно. Но! Нужно прежде всего исключить одну вещь. Разберитесь со следующими вещами: 1. Проверьте - все ли условия по данным были тогда и сейчас идентичны (то есть вставок новых в таблицы не происходило ит.д.) , если есть возможность сравните планы выполнения тогда и сейчас (ну мало ли, вдруг вы где-то сохранили старый план). Если планы выполнения идентичны, тогда: 2. У вас виртуальная или реальная среда на которой крутиться БД ? Если виртуальная тогда: прежде чем что-то предпринимать, поинтересуйтесь у админов степенью нагрузки общего физического дискового массива другими приложениями и базами. Учитывая модные тенденции сейчас все ставить на виртуалки, даже бд (особенно когда общее железо разделяют несколько баз, приложений и прочее.), - всегда нужно интересоваться нагрузками на дисковую подсистему. Возможно на СХД на одном луне повесили кучу аплекух и баз, и тогда на ровном месте вы можете получить сегодня идеальную работу, а завтра при тех же самых условиях у вас мистическим образом все упадет ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 16:02 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39742077&tid=1883074]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 411ms |

| 0 / 0 |
