Bagikan melalui


Jenis Konkurensi

Untuk mengatasi masalah berkurangnya konkurensi dalam kursor, ODBC mengekspos empat jenis konkurensi kursor yang berbeda:

  • Baca-saja Kursor dapat membaca data tetapi tidak dapat memperbarui atau menghapus data. Ini adalah jenis konkurensi default. Meskipun DBMS mungkin mengunci baris untuk memberlakukan tingkat isolasi Baca berulang dan Serializable, DBMS dapat menggunakan kunci baca alih-alih kunci tulis. Ini menghasilkan konkurensi yang lebih tinggi karena transaksi lain setidaknya dapat membaca data.

  • Mengunci Kursor menggunakan tingkat penguncian terendah yang diperlukan untuk memastikan kursor dapat memperbarui atau menghapus baris dalam tataan hasil. Ini biasanya menghasilkan tingkat konkurensi yang sangat rendah, terutama pada tingkat isolasi Transaksi Baca yang Dapat Diulang dan Dapat Diserialisasikan.

  • Konkurensi optimis menggunakan versi baris dan konkurensi optimis menggunakan nilai Kursor menggunakan konkurensi optimis: Ini memperbarui atau menghapus baris hanya jika tidak berubah sejak terakhir dibaca. Untuk mendeteksi perubahan, ini membandingkan versi atau nilai baris. Tidak ada jaminan bahwa kursor akan dapat memperbarui atau menghapus baris, tetapi konkurensi jauh lebih tinggi daripada saat penguncian digunakan. Untuk informasi selengkapnya, lihat bagian berikut ini, Konkurensi Optimis.

Aplikasi menentukan jenis konkurensi apa yang ingin digunakan kursor dengan atribut pernyataan SQL_ATTR_CONCURRENCY. Untuk menentukan jenis apa yang didukung, ia memanggil SQLGetInfo dengan opsi SQL_SCROLL_CONCURRENCY.