Daftar Isi:

Apa yang menyebabkan kebuntuan basis data?
Apa yang menyebabkan kebuntuan basis data?

Video: Apa yang menyebabkan kebuntuan basis data?

Video: Apa yang menyebabkan kebuntuan basis data?
Video: "Manajemen Transaksi Database" | Kuliah Manajemen Data / Manajemen Database 2024, Mungkin
Anonim

A jalan buntu terjadi ketika dua (atau lebih) transaksi saling memblokir dengan menahan kunci pada sumber daya yang juga dibutuhkan oleh masing-masing transaksi. Contoh: Transaksi 1 mengunci Tabel A. Kebanyakan orang akan menulis bahwa kebuntuan tidak dapat dihindari dalam multi-pengguna basis data.

Di sini, apa itu kebuntuan dalam basis data?

Kebuntuan . Di sebuah basis data , A jalan buntu adalah situasi di mana dua atau lebih transaksi menunggu satu sama lain untuk melepaskan kunci. Misalnya, Transaksi A mungkin mengunci beberapa baris di tabel Akun dan perlu memperbarui beberapa baris di tabel Pesanan untuk menyelesaikannya.

Juga Ketahuilah, dapatkah suatu pilihan menyebabkan kebuntuan? 2 Jawaban. Jalan buntu terjadi ketika satu kueri memperoleh kunci pada suatu objek (baris, halaman data, luas, tabel, dll) dan sumber daya lain mencoba mengaksesnya. Unit terkecil di SQL Server adalah halaman data dan SQL mengunci halaman saat mengerjakannya. Jadi, ya mungkin saja dua Pilih penyataan bisa membuat jalan buntu.

Selain itu, bagaimana kita bisa mencegah kebuntuan dalam database?

Tips menghindari kebuntuan

  1. Pastikan desain database dinormalisasi dengan benar.
  2. Kembangkan aplikasi untuk mengakses objek server dalam urutan yang sama setiap kali.
  3. Jangan izinkan input pengguna apa pun selama transaksi.
  4. Hindari kursor.
  5. Usahakan transaksi sesingkat mungkin.

Bagaimana Anda memperbaiki kebuntuan?

Pengembang cerdas harus melakukan langkah-langkah berikut untuk pulih dari kebuntuan:

  1. Periksa nomor kesalahan 1205, ketika pengecualian dilemparkan.
  2. Jeda aplikasi sebentar untuk memberikan waktu kueri lainnya untuk menyelesaikan transaksinya dan melepaskan kunci yang diperolehnya.
  3. Kirim ulang kueri, yang dibatalkan oleh SQL Server.

Direkomendasikan: