Kursor Campuran

Kursor campuran adalah kombinasi kursor berbasis keyset dan kursor dinamis. Ini digunakan ketika tataan hasil terlalu besar untuk menyimpan kunci secara wajar untuk seluruh tataan hasil. Kursor campuran diimplementasikan dengan membuat set kunci yang lebih kecil dari seluruh tataan hasil tetapi lebih besar dari set baris.

Selama aplikasi menggulir dalam set kunci, perilakunya digerakkan oleh keyset. Ketika aplikasi bergulir di luar set kunci, perilakunya dinamis: Kursor mengambil baris yang diminta dan membuat set kunci baru. Setelah set kunci baru dibuat, perilaku kembali ke keyset-driven dalam set kunci tersebut.

Misalnya, kumpulan hasil memiliki 1.000 baris dan menggunakan kursor campuran dengan ukuran set kunci 100 dan ukuran set baris 10. Saat kumpulan baris pertama diambil, kursor membuat set kunci yang terdiri dari kunci untuk 100 baris pertama. Kemudian mengembalikan 10 baris pertama, seperti yang diminta.

Sekarang misalkan aplikasi lain menghapus baris 11 dan 101. Jika kursor mencoba mengambil baris 11, kursor akan mengalami celah karena memiliki kunci untuk baris ini tetapi tidak ada baris; ini adalah perilaku berbasis keyset. Jika kursor mencoba mengambil baris 101, kursor tidak akan mendeteksi bahwa baris hilang karena tidak memiliki kunci untuk baris tersebut. Sebaliknya, ini akan mengambil apa yang sebelumnya baris 102. Ini adalah perilaku kursor dinamis.

Kursor campuran setara dengan kursor berbasis keyset saat ukuran set kunci sama dengan ukuran kumpulan hasil. Kursor campuran setara dengan kursor dinamis saat ukuran set kunci sama dengan 1.