Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Починка статистики: философский вопрос / 11 сообщений из 11, страница 1 из 1
12.10.2017, 05:13
    #39535125
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Предположим, у нас в хранилище есть запросы которые работают нестабильно. Анализ показал, что проблема в статистике по нескольким таблицам, которая давно не обновлялась.
Логичным выглядит решение: собрать актуальную статистику. Анализ показывает что это пофиксит эти планы.
Проблема в том, что код переполнен хинтами, на базе куча профилей и бейзлайнов ( даже автоматический захват бейзлайнов включен). Это означает, что теоретически мы нашим чейнджем можем улучшить ряд планов, но при этом можем сломать ряд других, среди которых могут оказаться более критичные. Сломаем мы конечно правильно, но тем не менее, ночных звонков не хотелось бы.
Существует ли способ проверить как наш патч повлияет на общий перфоманс системы до его применения?
Вариант: проверить на UAT-базах разумеется хорош. Проблема в том, что как ты ни старайся, сделать UAT полностью на 100% эквивалентным проду не получится ( по административным причинам в частности), а в перфоманс вещах важной может оказаться любая деталь. Какие есть еще варианты? Как вы поступаете в подобных случаях?
Предположим, мы извлечем из AWR все сколько-нибудь нагруженные запросы которые связаны с этими таблицами. Как проверить, что эти запросы станут работать не хуже во всех возможных ситуациях? Запускать их - не очень вариант, т.к. это хранилище и некоторые из них работают часами. Можно ли сделать сколько-нибудь эстимейт потребления ресурсов для запроса не запуская его? Какие ресурсы необходимо при этом учитывать? Существуют ли инструменты в т.ч. стандартные оракловые для подобных вещей?
...
Рейтинг: 0 / 0
12.10.2017, 06:10
    #39535129
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Ну не знаю, как можно докатиться до жизни такой....
Без реально работающей базы прошлой версии/дня/обновления.
Я даже не представляю.
Если только объём уж сильно большой.
...
Рейтинг: 0 / 0
12.10.2017, 10:18
    #39535204
pihel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Valergrad,

возможно получится провести тест используя pending stat

правда публиковать новую статистику для нужной сессии нужно будет вручную:
ALTER SESSION SET OPTIMIZER_USE_PENDING_STATISTICS=TRUE;
...
Рейтинг: 0 / 0
12.10.2017, 12:20
    #39535301
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
ValergradСуществуют ли инструменты в т.ч. стандартные оракловые для подобных вещей? Database Replay

Не очень понятно почему нельзя иметь аналог прода. Если есть sensitive info - настраиваете data masking.
Если проблема с объемами, то, насколько я понимаю, речь про хранилище и можно переносить не все секции, а часть.

Да и вообще повествование выглядит в духе: у нас там бардак, здесь костыли, как все сразу исправить при этом безопасно и seamless.

Безопасность можно обеспечить тем, что статистику можно откатить обратно - resore%stats или export%stats -> import%stats - смотри детали в dbms_stats.
ValergradМожно ли сделать сколько-нибудь эстимейт потребления ресурсов для запроса не запуская его?План посмотреть. Tuning Advisor, вероятно, может что-то показать точнее, но я бы не тратил время на это балавство.

PS. Профили и бейзлайны это лишь временный и относительно безопасный фикс, так что если вы долгое время не делали нормальных улучшений, то за лень в итоге надо платить. Хотя в лучае бейзлайнов по-моему полностью индифферентно, что вы соберете статистику. И от тех и от других надо избавляться имхо.
...
Рейтинг: 0 / 0
12.10.2017, 12:32
    #39535311
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Valergrad,

>> Предположим, у нас в хранилище есть запросы которые работают нестабильно
можно ли переписать запрос , что бы он без статистики строил правильный план, например используя left join к справочникам , вместо перечисления их через запятую в from ?
...
Рейтинг: 0 / 0
12.10.2017, 12:41
    #39535320
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
essbase.ruValergrad,

>> Предположим, у нас в хранилище есть запросы которые работают нестабильно
можно ли переписать запрос , что бы он без статистики строил правильный план, например используя left join к справочникам , вместо перечисления их через запятую в from ?Зачем ты пишешь эти тупости?
...
Рейтинг: 0 / 0
12.10.2017, 13:14
    #39535338
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Valergrad,

Скачай курс по performance tuning именно этот вопрос там раскрыт
...
Рейтинг: 0 / 0
12.10.2017, 21:13
    #39535690
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
xtenderValergrad,

Скачай курс по performance tuning именно этот вопрос там раскрыт

Какой именно курс?
...
Рейтинг: 0 / 0
12.10.2017, 22:26
    #39535713
Rudyshin Sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Valergrad,

можно попробовать сделать следующее
с прома экспортировать:
- схему(ы) без данных
- статистику, в том числе и системную
- все запросы
- планы выполнения запросов
- настройки влияющие на планы построения запросов

на тестовой базе импортирвать все что возможно импортирвать. Сгенерировать планы для всех запросов и убедиться, что они совпадают с промовскими.
Возможно придется распарсить промовские планы и извлечь байнд переменные.

Если это сработает, то можно менять статистику по своему усмотрению. Заново генерировать планы и проверять как это сказывается на планах.
Т.е. получается некоторое регрессионное тестирование.

Наверное будут трудности с получением планов, если на проме активно используется dynamic_sampling (не везде статистика собрана)

Сам в процессе реализации этой задумки. Надеюсь получится.
...
Рейтинг: 0 / 0
12.10.2017, 23:07
    #39535725
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Valergrad,

поищи про dbms_sqlpa(SQL Performance Analyzer), например, тут: https://oracle-base.com/articles/11g/sql-performance-analyzer-11gr1#sql_performance_analyzer_api
А вообще сходил бы на курс или скачал его с трекера какого-нибудь, там именно эта тема хорошо разжевана.


зы. Хотя лично я таким не пользуюсь...
...
Рейтинг: 0 / 0
13.10.2017, 01:16
    #39535746
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Починка статистики: философский вопрос
Rudyshin Sergeyна тестовой базе импортирвать все что возможно импортирвать.
Так он говорит именно о том, что тестовой базы он сделать не может.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Починка статистики: философский вопрос / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]