|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Запрос с хинтом NO_CPU_COSTING имеет гораздо более оптимальный план, аналогичный эффект дает Код: plsql 1.
по умолчанию стоит 'cpu' Где оптимизатор берет статистику по CPU? Пробовал удалять системную статистику, но без результата: Код: plsql 1.
Менял optimizer_index_cost_adj=100 - тоже не помогло. Как добиться, чтобы запрос работал по плану, который имеем с NO_CPU_COSTING, не меняя скрытых параметров? Или с другой стороны, если CBO все-таки берет информацию из системной статистики, может быть надо её более правильно собрать, или даже подкорректировать? И тут другой вопрос - максимальная нагрузка на систему бывает в конце месяца, можно ли сейчас какими-то запросами нагрузить базу и запустить сбор системной статистики, или надо это делать именно в часы реальной нагрузки? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 09:51 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
System Statistics Как правило, достаточно пересобрать NOWORKLOAD статистику, если нет требованиям к разным ресурсным планам и БД, которая на ночь превращается в тыкву сервер отчетов ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 10:05 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров System Statistics Как правило, достаточно пересобрать NOWORKLOAD статистику, если нет требованиям к разным ресурсным планам и БД, которая на ночь превращается в тыкву сервер отчетов Достаточно ли за час собрать? Может запустить хотя бы что-то тяжеленькое, вроде SELECT с parallel 16 ? Не очень понятно, как он соберет статистику производительности железа, если оно не будет нагружено. К теме, вот это "_optimizer_cost_based_transformation" = 'OFF' также меняет тот запрос в лучшую сторону. Еще вопрос, правильно ли удаляю системную статистику, просто в sys.aux_stats$ ничего не поменялось после запуска : Код: plsql 1.
И похоже статистика не собиралась нормально со Start и потом Stop, видимо просто запустили однократно: Код: plsql 1.
основные параметры SREADTIM, MBRC, MREADTIM, ... не установлены: sys.aux_stats$ SNAME PNAME PVAL1 PVAL2 SYSSTATS_INFO STATUS COMPLETED SYSSTATS_INFO DSTART 02-01-2018 12:32 SYSSTATS_INFO DSTOP 02-01-2018 12:32 SYSSTATS_INFO FLAGS 1 SYSSTATS_MAIN CPUSPEEDNW 1484 SYSSTATS_MAIN IOSEEKTIM 10 SYSSTATS_MAIN IOTFRSPEED 4091 SYSSTATS_MAIN SREADTIM SYSSTATS_MAIN MREADTIM SYSSTATS_MAIN CPUSPEED SYSSTATS_MAIN MBRC SYSSTATS_MAIN MAXTHR SYSSTATS_MAIN SLAVETHR ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 10:21 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Виноват, не сразу понял, про NOWORKLOAD, особый метод сбора... Код: plsql 1.
Проверю, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 10:28 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Похоже запуск сбора с NOWORKLOAD, эквивалентен запуску без параметров: Код: plsql 1. 2.
Не помогло ... подозреваю, что и с нагрузкой(Start-End) не поможет.... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 10:42 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Ну и при этом всякие DB_FILE_MULTIBLOCK_READ_COUNT лучше оставить по-умолчанию (128 для 8k блока) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 10:58 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Ставим сейчас 128... Почему Код: plsql 1.
ничего не меняет в sys.aux_stats$ ? Думал удалю системную статистику, и CBO будет использовать 'io' модель... Как его принудить к "миру"(к 'io') без скрытых параметров ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 11:07 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
KeklikСтавим сейчас 128... Почему Код: plsql 1.
ничего не меняет в sys.aux_stats$ ?Доку ты уже посмотрел? KeklikКак его принудить к "миру"(к 'io') без скрытых параметров ?Стесняюсь спросить, а запрос-то переразбирался ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 11:15 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровДоку ты уже посмотрел? Пробежался только, чтобы команды основные запускать. Не успеваю, посмотрю конечно детальнее. KeklikСтесняюсь спросить, а запрос-то переразбирался ? Есть тестовая система, шаред пул сбрасывал после сбора статистики. Если речь об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 11:26 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Важное замечание, потому что: Код: plsql 1. 2. 3.
(вот читаю доку, раз ничего не помогает :). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 11:41 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2.
Получается, что не удалишь системную статистику, этой процедурой. Т.е. также как и с обычной статистикой, если ее нет, то используется дефолтная, и если стоит " _optimizer_cost_model"=cpu , то будет она и использоваться(дефолтная noworkload). Поэтому хинт NO_CPU_COSTING и срабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 11:54 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
В голову ничего не приходит, вот вычитал, что можно установить в ручную параметры системной статистики. с помощью dbms_stats.set_system_stats Конечно надо бы попробовать сначала со Start-Stop на реальной нагрузке. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 12:26 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Не надо Оставь только NOWORKLOAD статистику и ее влияние будет минимальным Если, конечно, ты не выкрутил руки оптимизатору другими параметрами, а то тут уже проскакивало optimizer_index_cost_adj Можешь собрать и выложить 10053 (вложением), может кто чего и подскажет ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 12:36 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровНе надо Оставь только NOWORKLOAD статистику и ее влияние будет минимальным Если, конечно, ты не выкрутил руки оптимизатору другими параметрами, а то тут уже проскакивало optimizer_index_cost_adj Можешь собрать и выложить 10053 (вложением), может кто чего и подскажет Запрос не могу выкладывать... Вячеслав, я могу настроить запрос хинтами, несколько скрытых параметров его "выравнивают", но вопрос был в другом. И похоже он не имеет решения. Т.е. система всегда будет юзать системную статистику, если стоит модель 'cpu'. Попробую собрать статистику под нагрузкой. optimizer_index_cost_adj=100 я упоминал, потому что думал, что он будет влиять также как "_optimizer_cost_model"='io' - но не вышло. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 13:12 |
|
no_cpu_costing - как отключить без скрытых параметров?
|
|||
---|---|---|---|
#18+
Столкнулся с проблемой в 19с. Устанавливаю параметр _optimizer_cost_model"=io , через какое-то время он меняется на CHOOSE либо CPU. В init.ora он не установлен. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Почему _optimizer_cost_model сам себе режиссер? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2021, 10:44 |
|
|
start [/forum/topic.php?fid=52&msg=39658112&tid=1880233]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 284ms |
0 / 0 |