
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.10.2017, 05:13
|
|||
|---|---|---|---|
Починка статистики: философский вопрос |
|||
|
#18+
Предположим, у нас в хранилище есть запросы которые работают нестабильно. Анализ показал, что проблема в статистике по нескольким таблицам, которая давно не обновлялась. Логичным выглядит решение: собрать актуальную статистику. Анализ показывает что это пофиксит эти планы. Проблема в том, что код переполнен хинтами, на базе куча профилей и бейзлайнов ( даже автоматический захват бейзлайнов включен). Это означает, что теоретически мы нашим чейнджем можем улучшить ряд планов, но при этом можем сломать ряд других, среди которых могут оказаться более критичные. Сломаем мы конечно правильно, но тем не менее, ночных звонков не хотелось бы. Существует ли способ проверить как наш патч повлияет на общий перфоманс системы до его применения? Вариант: проверить на UAT-базах разумеется хорош. Проблема в том, что как ты ни старайся, сделать UAT полностью на 100% эквивалентным проду не получится ( по административным причинам в частности), а в перфоманс вещах важной может оказаться любая деталь. Какие есть еще варианты? Как вы поступаете в подобных случаях? Предположим, мы извлечем из AWR все сколько-нибудь нагруженные запросы которые связаны с этими таблицами. Как проверить, что эти запросы станут работать не хуже во всех возможных ситуациях? Запускать их - не очень вариант, т.к. это хранилище и некоторые из них работают часами. Можно ли сделать сколько-нибудь эстимейт потребления ресурсов для запроса не запуская его? Какие ресурсы необходимо при этом учитывать? Существуют ли инструменты в т.ч. стандартные оракловые для подобных вещей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 06:10
|
|||
|---|---|---|---|
Починка статистики: философский вопрос |
|||
|
#18+
Ну не знаю, как можно докатиться до жизни такой.... Без реально работающей базы прошлой версии/дня/обновления. Я даже не представляю. Если только объём уж сильно большой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 10:18
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
Valergrad, возможно получится провести тест используя pending stat правда публиковать новую статистику для нужной сессии нужно будет вручную: ALTER SESSION SET OPTIMIZER_USE_PENDING_STATISTICS=TRUE; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 12:20
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
ValergradСуществуют ли инструменты в т.ч. стандартные оракловые для подобных вещей? Database Replay Не очень понятно почему нельзя иметь аналог прода. Если есть sensitive info - настраиваете data masking. Если проблема с объемами, то, насколько я понимаю, речь про хранилище и можно переносить не все секции, а часть. Да и вообще повествование выглядит в духе: у нас там бардак, здесь костыли, как все сразу исправить при этом безопасно и seamless. Безопасность можно обеспечить тем, что статистику можно откатить обратно - resore%stats или export%stats -> import%stats - смотри детали в dbms_stats. ValergradМожно ли сделать сколько-нибудь эстимейт потребления ресурсов для запроса не запуская его?План посмотреть. Tuning Advisor, вероятно, может что-то показать точнее, но я бы не тратил время на это балавство. PS. Профили и бейзлайны это лишь временный и относительно безопасный фикс, так что если вы долгое время не делали нормальных улучшений, то за лень в итоге надо платить. Хотя в лучае бейзлайнов по-моему полностью индифферентно, что вы соберете статистику. И от тех и от других надо избавляться имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 12:32
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
Valergrad, >> Предположим, у нас в хранилище есть запросы которые работают нестабильно можно ли переписать запрос , что бы он без статистики строил правильный план, например используя left join к справочникам , вместо перечисления их через запятую в from ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 12:41
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
essbase.ruValergrad, >> Предположим, у нас в хранилище есть запросы которые работают нестабильно можно ли переписать запрос , что бы он без статистики строил правильный план, например используя left join к справочникам , вместо перечисления их через запятую в from ?Зачем ты пишешь эти тупости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 13:14
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
Valergrad, Скачай курс по performance tuning именно этот вопрос там раскрыт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 21:13
|
|||
|---|---|---|---|
Починка статистики: философский вопрос |
|||
|
#18+
xtenderValergrad, Скачай курс по performance tuning именно этот вопрос там раскрыт Какой именно курс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 22:26
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
Valergrad, можно попробовать сделать следующее с прома экспортировать: - схему(ы) без данных - статистику, в том числе и системную - все запросы - планы выполнения запросов - настройки влияющие на планы построения запросов на тестовой базе импортирвать все что возможно импортирвать. Сгенерировать планы для всех запросов и убедиться, что они совпадают с промовскими. Возможно придется распарсить промовские планы и извлечь байнд переменные. Если это сработает, то можно менять статистику по своему усмотрению. Заново генерировать планы и проверять как это сказывается на планах. Т.е. получается некоторое регрессионное тестирование. Наверное будут трудности с получением планов, если на проме активно используется dynamic_sampling (не везде статистика собрана) Сам в процессе реализации этой задумки. Надеюсь получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2017, 23:07
|
|||
|---|---|---|---|
|
|||
Починка статистики: философский вопрос |
|||
|
#18+
Valergrad, поищи про dbms_sqlpa(SQL Performance Analyzer), например, тут: https://oracle-base.com/articles/11g/sql-performance-analyzer-11gr1#sql_performance_analyzer_api А вообще сходил бы на курс или скачал его с трекера какого-нибудь, там именно эта тема хорошо разжевана. зы. Хотя лично я таким не пользуюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&tablet=1&tid=1885116]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 455ms |

| 0 / 0 |
