Bagikan melalui


Kursor Blok

Banyak aplikasi menghabiskan sejumlah besar waktu membawa data di seluruh jaringan. Bagian dari waktu ini dihabiskan benar-benar membawa data di seluruh jaringan, dan sebagian dihabiskan untuk overhead jaringan, seperti panggilan yang dilakukan oleh driver untuk meminta baris data. Waktu terakhir dapat dikurangi jika aplikasi membuat penggunaan blok yang efisien, atau lemak, kursor, yang dapat mengembalikan lebih dari satu baris pada satu waktu.

Aplikasi selalu memiliki opsi untuk menggunakan kursor blok. Pada sumber data tempat hanya satu baris pada satu waktu yang dapat diambil, kursor blok harus disimulasikan dalam driver. Ini dapat dilakukan dengan melakukan beberapa pengambilan baris tunggal. Meskipun ini tidak mungkin memberikan keuntungan performa apa pun, ini membuka peluang untuk aplikasi. Aplikasi tersebut kemudian akan mengalami peningkatan performa saat DBMS menerapkan kursor blok secara asli dan driver yang terkait dengan DBMS tersebut mengeksposnya.

Baris yang dikembalikan dalam satu pengambilan dengan kursor blok disebut set baris. Penting untuk tidak membingungkan set baris dengan tataan hasil. Kumpulan hasil dipertahankan di sumber data, sementara set baris dipertahankan dalam buffer aplikasi. Meskipun tataan hasil diperbaiki, kumpulan baris tidak - itu mengubah posisi dan konten setiap kali sekumpulan baris baru diambil. Sama seperti kursor baris tunggal seperti kursor khusus maju SQL tradisional menunjuk ke baris saat ini, kursor blok menunjuk ke set baris, yang dapat dianggap sebagai baris saat ini.

Untuk melakukan operasi yang beroperasi pada satu baris ketika beberapa baris telah diambil, aplikasi harus terlebih dahulu menunjukkan baris mana yang merupakan baris saat ini. Baris saat ini diperlukan oleh panggilan ke SQLGetData dan pernyataan pembaruan dan penghapusan yang diposisikan. Saat kursor blok pertama kali mengembalikan set baris, baris saat ini adalah baris pertama dari set baris. Untuk mengubah baris saat ini, aplikasi memanggil SQLSetPos atau SQLBulkOperations (untuk memperbarui berdasarkan bookmark). Ilustrasi berikut menunjukkan hubungan kumpulan hasil, set baris, baris saat ini, kursor set baris, dan kursor blok. Untuk informasi selengkapnya, lihat Menggunakan Kursor Blok, nanti di bagian ini, dan Pernyataan Pembaruan dan Penghapusan yang Diposisikan dan Memperbarui Data dengan SQLSetPos.

Mengambil Set Baris Berikutnya, Sebelumnya, Pertama, dan Terakhir

Apakah kursor adalah kursor blok tidak bergantung pada apakah kursor dapat digulir. Misalnya, sebagian besar pekerjaan dalam aplikasi laporan dihabiskan untuk mengambil dan mencetak baris. Karena itu, ini akan bekerja tercepat dengan kursor blok maju-saja. Ini menggunakan kursor khusus maju untuk menghindari pengeluaran kursor yang dapat digulir, dan kursor blok untuk mengurangi lalu lintas jaringan.

Bagian ini berisi topik berikut.