Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Có thể khóa một kích hoạt không; làm thế nào để xác định rằng nó là?

Để 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển chậm sang đám mây

  2. Cách tạo gói PL / SQL trong cơ sở dữ liệu Oracle

  3. Xuất cơ sở dữ liệu oracle sang tệp sql?

  4. Làm cách nào để giải quyết lỗi ORA-01427 (Truy vấn con một hàng trả về nhiều hơn một hàng)?

  5. Quy tắc nhân viên ngân hàng Oracle