library cache pin

library cache pin
Дата: 08.06.2006 16:44:41
Добрый день

При событии ожидания "library cache pin" дополнительные параметры p1, p2, p3 (в представлениях v$session_wait и v$event_name) имеют следующие значения:
P1 - handle address
P2 - pin address
P3 - 10*mode+namespace

В ноте 169139.1 описание события имеет следующий вид:
V$SESSION_WAIT : each session waiting on a library cache pin or lock is blocked by some other session
-p1 = object address
-p2 = lock/pin address

Кто нибуть знает каким образом сопоставить эти адреса с реальными объектами ???
HX
Дата: 08.06.2006 16:50:53
library cache pin
Добрый день

При событии ожидания "library cache pin" дополнительные параметры p1, p2, p3 (в представлениях v$session_wait и v$event_name) имеют следующие значения:
P1 - handle address
P2 - pin address
P3 - 10*mode+namespace

В ноте 169139.1 описание события имеет следующий вид:
V$SESSION_WAIT : each session waiting on a library cache pin or lock is blocked by some other session
-p1 = object address
-p2 = lock/pin address

Кто нибуть знает каким образом сопоставить эти адреса с реальными объектами ???

-выйти на сессии, которые держат pin на объекте, на котором ждем library cache pin


select s.sid, s.serial#, s.sql_hash_value as x_hash
from v$session s, x$kglpn x
where x.kglpnuse = s.saddr
and x.kglpnhdl = v$session_wait.P1raw;

-- выйти на LCO
select *
from x$kglob
where kglhdadr = v$session_wait.p1raw
library cache pin
Дата: 08.06.2006 16:58:14
Спасибо большое, я нашёл, это описывется подробно в ноте:
WAITEVENT: "library cache pin" Reference Note Note:34579.1

HX - поражает скорость ответа !!!!!!!!!
Сынок
Дата: 08.06.2006 17:20:32
library cache pin
HX - поражает скорость ответа !!!!!!!!!

Дык, он собаку на этом съел :) ггг
HX
Дата: 08.06.2006 17:48:29
Сынок
library cache pin
HX - поражает скорость ответа !!!!!!!!!

Дык, он собаку на этом съел :) ггг

Откуда такая уверенность?.. Не очень люблю корейскую кухню... :-)
Сынок
Дата: 08.06.2006 18:00:12
HX
Сынок
library cache pin
HX - поражает скорость ответа !!!!!!!!!

Дык, он собаку на этом съел :) ггг

Откуда такая уверенность?.. Не очень люблю корейскую кухню... :-)

Ну как же, припоминаю близкую тему. Хотя может и нет.
HX
Дата: 08.06.2006 18:04:07
Сынок

Ну как же, припоминаю близкую тему. Хотя может и нет.

А вы в этом смысле... Тогда да. Все никак не доходят руки до нее :-( у меня есть мысли продолжить ее...
Сынок
Дата: 08.06.2006 19:24:48
HX
Все никак не доходят руки до нее :-( у меня есть мысли продолжить ее...

Будем ждать продолжения ;)
huliGUN
Дата: 09.11.2010 10:56:55
А вот и продолжение...
решил новую тему не заводить.

Есть таблица sa.table, на ней вист триггер sa_audit.tr_table, который осуществляет аудит изменения данных в таблице и производит запись в таблицу sa_audit.audit_table, сиквенс тоже не воееный : от 1 до 1E27 шаг 1, кеш 100

триггер:
CREATE OR REPLACE TRIGGER sa_audit.tr_table
AFTER INSERT  OR  DELETE  OR UPDATE
ON sa.table
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
 v_Action  VARCHAR2(1);
 n_User_Id NUMBER;
BEGIN
 v_Action := CASE
              WHEN INSERTING THEN 'I'
              WHEN UPDATING  THEN 'U'
              WHEN DELETING  THEN 'D'
             END;
 BEGIN
   n_User_Id := sa.Utils.Get_User_Id(Ora_User_Name => USER);;
  EXCEPTION
   WHEN OTHERS THEN
    NULL;
 END;
IF INSERTING
    OR UPDATING THEN
INSERT INTO sa_audit.audit_table
 (ID ,NAME
 ,Action_Type, Action_Date, Action_Id
 ,Action_User_Id, Action_User, Action_Terminal)
VALUES
 (:NEW.ID ,:NEW.NAME
 ,v_Action, SYSDATE,trash.pirat_seq.NEXTVAL
 ,n_User_Id, USER, Sys_Context('USERENV', 'HOST'));
 ELSIF DELETING THEN
INSERT INTO sa_audit.audit_table
 (ID, NAME
 ,Action_Type, Action_Date, Action_Id
 ,Action_User_Id, Action_User, Action_Terminal)
VALUES
 (:OLD.ID ,:OLD.NAME
 ,v_Action, SYSDATE,trash.pirat_seq.NEXTVAL
 ,n_User_Id, USER, Sys_Context('USERENV', 'HOST'));
 END IF;
END tr_pirat_test;

Беда вся в том, что переодически выстреливает сессия которая получает cache pin в эксклюзиве и одновременно просит в шаред (время ожидания у обоих записей одинаково), естественно остальные курят. Прибиваю сессию и все проходит, но убивать конкретно эти сессии очень не хорошо.
Не понятно накой ляд сессия запрашивает пин в ексклюзиве, для компиляции объекта (в v$session_wait p3 = 303 (trigger); 200 (SQL Area) у сессиий в ожидании), если объекты от которых он зависит не изменялись и сам триггер валидный и не перекомпилируется, что видно из dba_objects
И каким макаром сессия сразу просит ексклюзив и шаред кеш пин.
Пытался смоделировать ничего не выходит (((
Скрипты вот тут
huliGUN
Дата: 09.11.2010 11:00:03
Упс очепятка...
Вот так вот правильно:
...
END tr_table;