Rumah > masalah biasa > teks badan

Bagaimana untuk menyemak sebab meja kunci dalam oracle

小老鼠
Lepaskan: 2023-07-05 15:09:45
asal
2932 orang telah melayarinya

Sebab mengapa oracle mengunci jadual ialah: apabila atur cara melakukan sisipan pada jadual dan masih belum melakukan, atur cara lain turut melaksanakan sisipan pada jadual yang sama, dan pengecualian sibuk sumber akan berlaku pada masa ini kunci meja.

Bagaimana untuk menyemak sebab meja kunci dalam oracle

Sistem pengendalian tutorial ini: sistem Windows 10, Oracle versi 19c, komputer Dell G3. Apakah sebab Oracle mengunci jadual? masa Pengecualian yang berlaku apabila sumber sibuk ialah mengunci jadual

(2) Jadual kunci sering berlaku secara serentak dan bukannya selari (secara selari, apabila satu utas mengendalikan pangkalan data, utas lain tidak dapat mengendalikan pangkalan data, CPU dan I/O prinsip peruntukan ) Kaedah untuk mengurangkan kebarangkalian mengunci jadual:

(1) Kurangkan masa antara pelaksanaan memasukkan, mengemas kini dan memadam kenyataan dan komit. Khususnya, pelaksanaan kelompok ditukar kepada pelaksanaan tunggal, dan kelajuan bukan pelaksanaan sql itu sendiri dioptimumkan

(2) Jika transaksi digulung semula secara tidak normal

Alasan untuk mengunci jadual mungkin kerana data baris telah diubah suai dan terlupa untuk menyerahkan, yang juga akan menyebabkan jadual dikunci.

1. Adalah disyorkan untuk menyemak sebab mengunci jam tangan sebelum membuat keputusan.

1 Kod untuk pertanyaan jadual kunci mempunyai bentuk berikut:

select count(*) from v$locked_object;
select * from v$locked_object;
Salin selepas log masuk

2 Semak jadual mana yang dikunci

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
Salin selepas log masuk

3 Semak sesi mana yang menyebabkannya

select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
Salin selepas log masuk

4. Kill Drop proses yang sepadan

Laksanakan arahan: alter system kill session'1025,41';

di mana 1025 ialah sid dan 41 ialah siri#.

2 Sebab pengguna Oracle sering dikunci

semasa log masuk , ia menggesa: pengguna ujian dikunci Kunci

1 Log masuk sebagai pengguna dengan peranan dba untuk membuka kunci Mula-mula tetapkan format masa tertentu untuk melihat masa tertentu

select b.username,b.sid,b.serial#,c.* from v$locked_object a,v$session b,v$sql c where a.session_id = b.sid
and b.SQL_ID = c.sql_id and c.sql_id = ''
order by b.logon_time;
Salin selepas log masuk

Sesi diubah.

2 masa

SQL> alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss’;
Salin selepas log masuk

3. Buka kunci

SQL> select username,lock_date from dba_users where username='TEST';
USERNAME LOCK_DATE
------------------------------ -------------------
TEST 2021-03-10 08:51:03
Salin selepas log masuk

Pengguna diubah.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sebab meja kunci dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan