Để xác định xem trình kích hoạt (cũng như bất kỳ quy trình được lưu trữ nào khác) có bị khóa hay không, hãy TRUY CẬP V $ chế độ xem hiệu suất động có thể được truy vấn.
Session #1
insert into test_trigger
select level
from dual
connect by level <= 1000000;
Session #2
SQL> select *
2 from v$access
3 where object = upper('test_trigger_t')
4 ;
Sid Owner Object Type Con_Id
--------------------------------------
441 HR TEST_TRIGGER_T TRIGGER 3
Những loại khóa là các chân của bộ đệm thư viện (các khóa của bộ đệm thư viện là tài nguyên (TM
loại khóa) khóa), cần thiết để đảm bảo rằng một đối tượng được bảo vệ khỏi bị sửa đổi trong khi phiên đang thực thi nó.
--session sid # 441
insert into test_trigger
select level
from dual
connect by level <= 1000000;
-- session sid #24
create or replace trigger test_trigger_t
after insert on test_trigger for each row
begin
insert into test_trigger_h (id) values (:new.id);
end;
-- Session # 3
select vs.sid
, vs.username
, vw.event
from v$session vs
join v$session_wait vw
on (vw.sid = vs.sid)
join v$access va
on (va.owner = vs.username)
where vs.username = 'HR'
Kết quả:
Sid Username Event
--------------------------
24 HR library cache pin
....
441 HR log file switch (checkpoint incomplete)
Ở đây, chúng ta có thể thấy rằng phiên # 441 chờ chuyển đổi tệp nhật ký và phiên # 24 chờ ghim bộ đệm thư viện.