Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bisakah pemicu dikunci; bagaimana cara menentukannya?

Untuk menentukan apakah pemicu (serta prosedur tersimpan lainnya) dikunci atau tidak, V$ACCESS tampilan kinerja dinamis dapat ditanyakan.

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 

kunci semacam itu adalah pin cache perpustakaan (kunci cache perpustakaan adalah sumber daya (TM type of lock) locks), diperlukan untuk memastikan bahwa suatu objek dilindungi dari modifikasi saat sesi sedang mengeksekusinya.

--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'

Hasil:

Sid Username Event 
--------------------------
24 HR library cache pin 
....
441 HR log file switch (checkpoint incomplete) 

Di sini kita dapat melihat bahwa sesi #441 menunggu pengalihan file log dan sesi #24 menunggu pin cache perpustakaan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana klausa 'dalam' bekerja di oracle

  2. Kueri rekursif SQL pada tabel referensi mandiri (Oracle)

  3. Tautan basis data Oracle - sambungkan ke proxy dengan karakter khusus di nama pengguna

  4. Oracle Managed ODP.NET tidak dapat menemukan tnsnames.ora

  5. Bagaimana mengantisipasi dan menghindari kutipan tunggal ' di oracle