Rumah > pangkalan data > Oracle > teks badan

Apakah punca kebuntuan Oracle?

WBOY
Lepaskan: 2022-03-03 16:41:42
asal
8586 orang telah melayarinya

Sebab: 1. Urutan akses sumber antara urus niaga silih berganti, dan dua pengguna mengakses jadual yang dikunci oleh pihak yang satu lagi, mengakibatkan kebuntuan 2. Dua pengguna secara serentak mengubah suai rekod yang sama, mengakibatkan kebuntuan ; 3 , pernyataan yang tidak memenuhi syarat dilaksanakan, dan pengindeksan yang tidak betul menyebabkan kebuntuan dalam imbasan global.

Apakah punca kebuntuan Oracle?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Apakah punca kebuntuan Oracle?

Pangkalan data ialah sumber dikongsi yang digunakan oleh berbilang pengguna apabila berbilang pengguna mengakses data secara serentak, berbilang transaksi akan berlaku dalam pangkalan data pada masa yang sama. akses kepada data yang sama. Jika operasi serentak tidak dikawal, data yang salah boleh dibaca dan disimpan, memusnahkan konsistensi pangkalan data. Mengunci adalah teknologi yang sangat penting untuk mencapai kawalan konkurensi pangkalan data. Pengecualian berkaitan kunci sering ditemui dalam aplikasi praktikal Apabila dua urus niaga memerlukan satu set kunci yang bercanggah dan urus niaga tidak dapat diteruskan, kebuntuan akan berlaku, yang menjejaskan pelaksanaan biasa aplikasi.

Jenis kunci:

1 Kunci kongsi (Kunci Kongsi, kunci S): Objek data dengan kunci kongsi boleh dibaca oleh transaksi lain, tetapi tidak boleh Semak semula. Pangkalan data menggunakan dua jenis kunci asas ini untuk mengawal keselarasan transaksi pangkalan data.

2. Kunci Eksklusif (kunci X): Apabila objek data dikunci dengan kunci eksklusif, transaksi lain tidak boleh membaca atau mengubah suainya.

3. Kunci eksklusif: Berdasarkan kunci kongsi, ia dinaik taraf kepada kunci eksklusif.

4. Kunci kemas kini: Semua pengguna boleh membaca, tetapi saya mungkin melakukan operasi kemas kini pada masa hadapan. Hanya satu kunci kemas kini boleh layak untuk transaksi ini.

Punca kejadian:

1 Pergantian jujukan akses sumber antara transaksi: pengguna 1 mengakses jadual A (jadual terkunci A), dan kemudian mengakses semula Jadual B. ; pengguna lain 2 mengakses jadual B (mengunci jadual B), dan kemudian cuba mengakses jadual A pada masa ini, pengguna 1 perlu menunggu pengguna 2 untuk melepaskan jadual B kerana pengguna 2 telah mengunci jadual B sebelum meneruskan 2 mesti menunggu pengguna 1 mengeluarkan jadual A sebelum meneruskan, dan kebuntuan berlaku. Penyelesaian: Masalah logik program, perhatikan urutan panggilan jadual

2. Ubah suai rekod yang sama secara serentak: Pengguna 1 menanyakan rekod, dan kemudian mengubah suai rekod, kemudian pengguna 2 1 Sifat kunci dalam transaksi cuba ditingkatkan daripada kunci kongsi pertanyaan kepada kunci eksklusif, dan kunci eksklusif dalam pengguna 2 mesti menunggu 1 untuk melepaskan kunci kongsi kerana 1 mempunyai kunci kongsi, sementara 1 tidak boleh ditingkatkan kerana kunci eksklusif 2 menjadikannya mustahil untuk melepaskan kunci yang dikongsi, jadi kebuntuan berlaku:

3. Pengindeksan yang tidak betul membawa kepada imbasan jadual penuh: transaksi melaksanakan penyata yang tidak memenuhi syarat, melaksanakan imbasan jadual penuh atau jumlah data jadual sangat besar Apabila terdapat terlalu sedikit atau indeks besar yang tidak sesuai

Penyelesaian: Jangan gunakan pertanyaan terlalu kompleks yang mengaitkan berbilang jadual dalam pernyataan SQL dan bina indeks untuk pengoptimuman

Nota:

1 Oracle View kebuntuan dan lepaskan kebuntuan

select sess.sid,     sess.serial#,     lo.oracle_username,     lo.os_user_name,     ao.object_name,     lo.locked_mode     from v$locked_object lo,     dba_objects ao,     v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid; 
alter system kill session '738,1429';  --释放资源
Salin selepas log masuk

2 >Tutorial yang disyorkan: "

Tutorial Video Oracle
show processlist         --查看数据库中各个进程的运行状态
select * from information_schema.innodb_trx        ---查询正在运行的事务
kill id
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah punca kebuntuan 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