Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Outlines и перегрузка shared pool  [new]
KhamRad
Member

Откуда: Казань - Москва :)
Сообщений: 108
Привет всем.
Выполнил alter session set create_stored_outlines = healthy_plans;.

Создал outline. Присвоил нужный план запроса, ну все как здесь написано. Запускаю программулину с злосчастным запросом. А он выполняется по старому плану.
Говорил на эту тему с админом. Он говорит, что надо будет shared pool перегружать.
Вопрос: Каждый ли раз необходимо перегружать shared pool при добавлении/изменении/удалении outlines?

Спасибо.
4 май 07, 15:29    [4100680]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
cursor_sharing ?..
4 май 07, 15:34    [4100718]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
KhamRad
Member

Откуда: Казань - Москва :)
Сообщений: 108
HX
cursor_sharing ?..


Нет, stored outlines.
4 май 07, 15:45    [4100803]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
alter session set USE_STORED_OUTLINES...
поставить для сессии
4 май 07, 15:46    [4100816]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
strm
Guest
)))
4 май 07, 15:46    [4100817]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
evostr
Member

Откуда: Екатеринбург
Сообщений: 1278
KhamRad
HX
cursor_sharing ?..


Нет, stored outlines.

Спасибо, под конец рабочего дня...
4 май 07, 15:49    [4100841]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
KhamRad
HX
cursor_sharing ?..


Нет, stored outlines.

5!
Я имел в виду проверьте значение параметра cursor_sharing. :-).. stored outlines по понятным причинам имеет св-во недружить с оным.
4 май 07, 15:52    [4100862]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
KhamRad
Member

Откуда: Казань - Москва :)
Сообщений: 108
HX
KhamRad
HX
cursor_sharing ?..


Нет, stored outlines.

5!
Я имел в виду проверьте значение параметра cursor_sharing. :-).. stored outlines по понятным причинам имеет св-во недружить с оным.


Спасибо. Я просто не админ(надеюсь пока). Админ эти все параметры проверит. И будет все работать. У меня вопрос: Каждый ли раз этот shared pool придется перегружать? Или его перегружать вообще не надо :).
4 май 07, 15:58    [4100927]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
ITGOOD
Guest
Shared pool перегружать не требуется.
4 май 07, 16:22    [4101133]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
KhamRad
Member

Откуда: Казань - Москва :)
Сообщений: 108
ITGOOD
Shared pool перегружать не требуется.

Спасибо большое. Прояснили :).
4 май 07, 16:59    [4101428]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7422
Хотел спросить, пока все из топика не разбежались:)
В системе есть дюжина нехилых запросов с большим parsing-time.
Вообщем-то хотелось с помощью OUTLINE, както елиминировать время парсинга, а не то чтобы стабилизировать планы выполнения. Однако подозрения не совсем оправдались. Аутлайны вроде как используются и время парсинга какбы уменьшилось, но не драматически, всего в два раза:( Кто прокомментирует результаты?
Спасиба!

NO_OUTLINE

select * 
from
v_dt_adjudicate where claim_key=:claim_key



call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 10.90 20.99 0 22325 0 0
Execute 1 4.35 5.49 0 0 0 0
Fetch 1 0.00 0.00 0 3 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 15.25 26.49 0 22328 0 0

Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: 337

WITH OUTLINE

select * 
from
v_dt_adjudicate where claim_key=:claim_key



call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 6.16 9.41 0 306 1755 0
Execute 1 1.89 2.98 0 0 0 0
Fetch 1 0.00 0.00 0 3 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 8.05 12.40 0 309 1755 0

Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: 337
4 май 07, 18:48    [4101941]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Relic Hunter
Хотел спросить, пока все из топика не разбежались:)

Я думаю, что дело в soft parse, его вы не избежите outline-ами. Они не для этого предназначены, вам надо бы другие средства использовать, session_chached_cursor, но это тема для другого топика :-) Попробуйте протассировать сеанс, который использует outline... Этот способ хорош только для стабилизации плана в условиях относительно стабильного приложения, с оговорками, конечно...
4 май 07, 22:13    [4102388]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Relic Hunter
...

Уппс. Внимательнее посмотрел на цифры, трассировка тут не покажет, вам бы такие курсоры в сесси не закрывать. Небось под view 25 этажей текста?..
4 май 07, 22:21    [4102410]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7422
HX
Relic Hunter
...

Уппс. Внимательнее посмотрел на цифры, трассировка тут не покажет, вам бы такие курсоры в сесси не закрывать.
А как я буду менять :claim_key не закрывая курсор?:)
HX
Небось под view 25 этажей текста?..
Вот в том-то и дело. Все последующие вызовы курсор открывается быстро 200мс, а первый раз Вы сами видели:) И в пакет не завернеш, всеравно парсится будет также долго, тут нам не микрософт (для тех кто не в курсе, там процедуры не парсятся при вызове, только в момент компиляции, хотя тоже можно такое поведение поменять соответствуящими настройками. Идеологически оно вроде-бы верно, парсить всегда! может данные поменялись или еще что. А на практике я знаю, что мой запрос всегда использует PK и тут врядли что-то изменится, дизайн такой, ну и нафига мне его парсить каждый раз спрашивается по 20 секунд?). Была слабая надежда на аутлайны.
4 май 07, 22:56    [4102535]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Relic Hunter
HX
Relic Hunter
...

Уппс. Внимательнее посмотрел на цифры, трассировка тут не покажет, вам бы такие курсоры в сесси не закрывать.
А как я буду менять :claim_key не закрывая курсор?:)
HX
Небось под view 25 этажей текста?..

bind - parse не помеха :-).. см. dbms_sql. Однако, начал смотреть чуть глубже и думается мне что outline должен на первый взгляд бы Вам помочь... а моежет выложить трассировку сырую все-таки от 10046 первого вызова?.. чтобы рекурсив sql были в нем...
4 май 07, 23:48    [4102722]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
AG#
Member

Откуда: Российская Федерация
Сообщений: 2305
Може работа самого аутлайн приклеивается ? Что-б ему хотя бы hard-parse обойти ?
4 май 07, 23:54    [4102751]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
AG#
Може работа самого аутлайн приклеивается ? Что-б ему хотя бы hard-parse обойти ?

Я только что смотрел, если текст запроса упакован во view, то даже нету тасканий bind var крупных. Не понятно мне куда 6 секунд ушло у автора.
4 май 07, 23:56    [4102756]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7422
А вы заметили, что с использованием аутлайн дико уменьшились "query", было 22325, стало 306. Зато "current" полез вверх сильно. Моя догадка - Oraclе заргружает что-то большое в память, никак сам аутлайн...
HX
AG#
Може работа самого аутлайн приклеивается ? Что-б ему хотя бы hard-parse обойти ?

Я только что смотрел, если текст запроса упакован во view, то даже нету тасканий bind var крупных. Не понятно мне куда 6 секунд ушло у автора.
5 май 07, 00:08    [4102809]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Relic Hunter
А вы заметили, что с использованием аутлайн дико уменьшились "query", было 22325, стало 306. Зато "current" полез вверх сильно. Моя догадка - Oraclе заргружает что-то большое в память, никак сам аутлайн...
HX
AG#
Може работа самого аутлайн приклеивается ? Что-б ему хотя бы hard-parse обойти ?

Я только что смотрел, если текст запроса упакован во view, то даже нету тасканий bind var крупных. Не понятно мне куда 6 секунд ушло у автора.


Давайте посмотрим 10046... ?..
5 май 07, 00:16    [4102832]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7422
Part1
HX
Давайте посмотрим 10046... ?..


К сообщению приложен файл (hmss_ora_2767_OUTL.part01.rar - 68Kb) cкачать
5 май 07, 00:24    [4102851]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7422
HX
Давайте посмотрим 10046... ?..


К сообщению приложен файл (hmss_ora_2767_OUTL.part02.rar - 68Kb) cкачать
5 май 07, 00:25    [4102852]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7422
Part 3
HX
Давайте посмотрим 10046... ?..


К сообщению приложен файл (hmss_ora_2767_OUTL.part03.rar - 3Kb) cкачать
5 май 07, 00:26    [4102853]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
To Relic Hunter

1. Очевидно что это hard parse.
2. Скорее всего view находится в схеме пользователя 1, а базовые таблицы находятся
в других схемах. (?)
3. Большая часть веремни от Parse в трассировке уходит на проверку прав доступа
при помощи рекурсивных запросов к access$, objauth$, col$ и порожденных ими
запросов к hist*$ так как это 10-ка и статисика по словарю работает.
4. если так, то никакой ouline не поможет, ибо права надо проверять при каждом
hard parse, иначе может быть вава-бобо.
5. Совет: закрепите такие запросы в коллективном пуле и не давайте им вымещаться.
сократите сбор статистики по базовым таблицам этих view или каждый раз
после пересбора статистики загружайте в shared pool принудительно планы и снова
закрепляйте их. Вообщем сделайте все чтобы избежать hard parse.
5 май 07, 14:42    [4103766]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
Привет.
PARSING IN CURSOR #10 len=121 dep=2 uid=0 oct=3 lid=0 tim=4460396692303 hv=3150898423 ad='fdf7da90'
select /*+ rule */ bucket, endpoint, col#, epvalue from histgrm$ where obj#=:1 and intcol#=:2 and row#=:3 order by bucket
END OF STMT
EXEC #10:c=10000,e=6399,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=3,tim=4460396692290
FETCH #10:c=0,e=701,p=0,cr=3,cu=0,mis=0,r=20,dep=2,og=3,tim=4460396694944
STAT #10 id=1 cnt=346 pid=0 pos=1 obj=0 op='SORT ORDER BY (cr=54 pr=0 pw=0 time=12448 us)'
STAT #10 id=2 cnt=346 pid=1 pos=1 obj=253 op='TABLE ACCESS CLUSTER HISTGRM$ (cr=54 pr=0 pw=0 time=6438 us)'
STAT #10 id=3 cnt=18 pid=2 pos=1 obj=252 op='INDEX UNIQUE SCAN I_OBJ#_INTCOL# (cr=36 pr=0 pw=0 time=481 us)' 
- типичный образчик. Статистику собирали - глистограммов понаплодили? Может зря, типа. Перекосов может и не быть, а нагрузка на словарь при разборах...

Ну и ежели база старенькая, да в ней объектики часто, много и с чуйством удаляли/создавали, словарик на диске тоже мог изрядненько попухнуть. Особенно любят деградировать кластеры при удалении/вставке. Ну а как известно из sql.bsq, словарь практически весь уклюстеризованный.

Ежели нету перекосов в данных, FOR ALL [INDEXED] COLUMNS SIZE 1. Для перекошенных - собрать глистограммы явно.

Всего
5 май 07, 15:25    [4103838]     Ответить | Цитировать Сообщить модератору
 Re: Outlines и перегрузка shared pool  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Ааз
...

У автора же наблюдается проблема отлько на 2-х трех запросах. Имеет ли смысл пересбирать статистику по словарю если 2-3 проблемных запроса можно закрепить в пуле?..
А вдруг есть неравномерности в данных словаря?..
5 май 07, 15:30    [4103848]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить