|
|
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 09:48 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_Frost, вроде как планы запросов в файлах 1.txt и 2.txt одинаковые. Не могли бы Вы сделать awr-отчёт за период длительной работы запроса и выложить его? Предполагаю, что в нём мы увидим события ожидания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 12:01 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Игорь КовалевMr_Frost, вроде как планы запросов в файлах 1.txt и 2.txt одинаковые. Не могли бы Вы сделать awr-отчёт за период длительной работы запроса и выложить его? Предполагаю, что в нём мы увидим события ожидания. Могу, если скажете, как) Планы одинаковые, цифры стоимости разные. E-Rows, E-Bytes, Cost (%CPU), E-Time различаются кардинально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 12:14 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Ожидание будет скорее всего latch: cache buffers chains Смотри 9 ответ ЗЫ. уже близко подошли ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 12:32 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
По теме создания AWR-отчётов довольно много информации в интернет. Например, вот ссылки http://oracleonrussian.blogspot.com/p/oracle-database-11g_25.html http://www.interface.ru/home.asp?artId=22589 В первой ссылке описано, как создать AWR-отчёт из Oracle Enterprise Manager или аналога, во второй - с использованием скриптов из sqlplus. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 12:41 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
landyОжидание будет скорее всего latch: cache buffers chains ЗЫ. уже близко подошли ))) Вчера, когда повисло, событие было async descriptor resize ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 13:22 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_Frost... Вчера, когда повисло, событие было async descriptor resize гугл даёт вот такое наблюдения 2013 года от Усольцева. https://iusoltsev.wordpress.com/2013/03/31/asynch-descriptor-resize-oracle-11-2-0-3-linux-x86_64/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 13:43 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_FrostlandyОжидание будет скорее всего latch: cache buffers chains ЗЫ. уже близко подошли ))) Вчера, когда повисло, событие было async descriptor resize А какая используется версия Oracle, какая операционная система? Надо искать рекомендации по борьбе с этим событием ожидания. Вот здесь пишут по этому поводу https://iusoltsev.wordpress.com/2013/03/31/asynch-descriptor-resize-oracle-11-2-0-3-linux-x86_64/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 13:46 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_FrostВчера, когда повисло, событие было async descriptor resizeТы смотрел не так или не туда или сделал неверные выводы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 13:48 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Игорь КовалевMr_Frost, Не могли бы Вы сделать awr-отчёт за период длительной работы запроса и выложить его? Версия Standard Edition, Oracle Database 11g Release 11.2.0.1.0 awr-отчёт выходит пустой, к сожалению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 15:47 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_FrostИгорь КовалевMr_Frost, Не могли бы Вы сделать awr-отчёт за период длительной работы запроса и выложить его? Версия Standard Edition, Oracle Database 11g Release 11.2.0.1.0 awr-отчёт выходит пустой, к сожалению AWR-отчётов нет из-за того, что у Вас Версия Standard Edition, а не Enterprise Edition. В Standard Edition отсутствуют развитые средства диагностики/мониторинга, но если нет возможности использовать Enterprise Edition можно попытаться использовать statspack - вот статья на эту тему http://logic.edchen.org/how-to-use-statspack-instead-of-awr-in-oracle-standard-edition/ Версию 11.2.0.1.0 хорошо бы заменить на более новую, например 11.2.0.4 - возможно это решит проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 16:02 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Игорь КовалевВерсию 11.2.0.1.0 хорошо бы заменить на более новую, например 11.2.0.4 - возможно это решит проблему. Неплохо было бы, но на это месяц согласований уйдет минимум ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 16:10 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_FrostИгорь КовалевВерсию 11.2.0.1.0 хорошо бы заменить на более новую, например 11.2.0.4 - возможно это решит проблему. Неплохо было бы, но на это месяц согласований уйдет минимум Дело в том, что версии ...1.0 если я верно всё помню считаются сыроватыми/содержащими большое количество ошибок, по этой причине их опасаются использовать в качестве production. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 16:29 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Про сравнение планов: Никогда не используйте EXPLAIN_PLAN для определения плана. Во всяком случае если в запросе есть бинды. EXPLAIN_PLAN ничего не знает о биндах, поэтому он может только случайно построить правильный план. Глядя на ваш запрос и план напрашивается вопрос: Действительно ли в вашей таблице ÂÛÐ_ÈÑÒ_ÑÈÃ_ÏÊ ровно одна строка со значением ÈÑÒ_ÑÈÃÍÀËÀ равным '1=0' ( см. предикат для 4й строчки)? Можете ли вы это проверить? Оракл считает что 1, поэтому выбрал nested loop, но если их больше - то нестед луп на 800 * 185k разумеется умирает. Далее - запросу на самом деле нужна только одна строчка - первая, таким образом время его на 100% зависит от того сколько итераций двойного цикла он сделает до того как найдет хоть одну строчку - т.е. время выполнения этого запроса очень "данные-зависимо". Вы легко можете отсортировать данные в двух сорсах независимо и посмотреть на какой итерации обычно бывает первое совпадение, и на какой итерации возникает совпадение в момент "затыка". Если прописать hash - то запрос выроятно будет гораздо быстрее в худшем случае, но может стать медленнее в лучшем. В общем, я бы копал пока от данных и от изменения бизнес-логики, прежде чем грешить на базу, латчи и тому подобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 17:05 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Valergrad, если пришло время глубокого рефакторинга, то начинать,IMHO, нужно с того, чтобы вообще избавиться от построчной обработки данных в цикле и подумать о решении задачи в один запрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 20:15 |
|
||
|
Почему быстрый запрос может стать медленным?
|
|||
|---|---|---|---|
|
#18+
Mr_Frost, не нужно было получать планы при помощи EXPLAIN. нужно было выполнить запрос и извлечь планы выполнения из кэша. Так как EXPLAIN мог дать "приблизительный план", который на деле будет очень сильно отличаться от фактического . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 20:18 |
|
||
|
|

start [/forum/search_topic.php?author=Omega70&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 632ms |
| total: | 772ms |

| 0 / 0 |
