Bekerja dengan pernyataan dan tataan hasil
Saat Anda bekerja dengan Driver Microsoft JDBC untuk SQL Server dan objek Pernyataan dan ResultSet yang disediakannya, ada beberapa teknik yang dapat Anda gunakan untuk meningkatkan performa dan keandalan aplikasi Anda.
Gunakan objek pernyataan yang sesuai
Saat Anda menggunakan salah satu objek Pernyataan driver JDBC, seperti SQLServerStatement, SQLServerPreparedStatement, atau objek SQLServerCallableStatement , pastikan Anda menggunakan objek yang sesuai untuk pekerjaan tersebut.
- Jika Anda tidak memiliki parameter OUT, Anda tidak perlu menggunakan objek SQLServerCallableStatement. Sebagai gantinya, gunakan SQLServerStatement atau objek SQLServerPreparedStatement.
- Jika Anda tidak berniat untuk menjalankan pernyataan lebih dari sekali, atau tidak memiliki parameter IN atau OUT, Anda tidak perlu menggunakan SQLServerCallableStatement atau objek SQLServerPreparedStatement. Sebagai gantinya, gunakan objek SQLServerStatement.
Gunakan konkurensi yang sesuai untuk objek ResultSet
Jangan meminta konkurensi yang dapat diperbarui saat Anda membuat pernyataan yang menghasilkan tataan hasil kecuali Anda benar-benar berniat untuk memperbarui hasilnya. Model kursor baca-saja dan baca-saja default adalah yang tercepat untuk membaca tataan hasil kecil.
Membatasi ukuran kumpulan hasil Anda
Pertimbangkan untuk menggunakan metode setMaxRows (atau SET ROWCOUNT atau SELECT TOP N SQL sintaks) untuk membatasi jumlah baris yang dikembalikan dari kumpulan hasil yang berpotensi besar. Jika Anda harus berurusan dengan tataan hasil besar, pertimbangkan untuk menggunakan buffering respons adaptif dengan mengatur respons properti string koneksiBuffering=adaptive, yang merupakan mode default. Pendekatan ini memungkinkan aplikasi untuk memproses tataan hasil besar tanpa memerlukan kursor sisi server dan meminimalkan penggunaan memori aplikasi. Untuk informasi selengkapnya, lihat Menggunakan buffering adaptif.
Gunakan ukuran pengambilan yang sesuai
Untuk kursor server baca-saja, tradeoff adalah perjalanan pulang pergi ke server versus jumlah memori yang digunakan dalam driver. Untuk kursor server yang dapat diperbarui, ukuran pengambilan juga memengaruhi sensitivitas hasil yang diatur ke perubahan dan konkurensi pada server. Updates ke baris dalam buffer pengambilan saat ini tidak terlihat sampai metode refreshRow eksplisit dikeluarkan atau sampai kursor meninggalkan buffer pengambilan. Buffer pengambilan besar akan memiliki performa yang lebih baik (lebih sedikit perjalanan pulang pergi server) tetapi kurang sensitif terhadap perubahan dan mengurangi konkurensi pada server jika CONCUR_SS_SCROLL_LOCKS (1009) digunakan. Agar sensitivitas maksimum terhadap perubahan, gunakan ukuran pengambilan 1. Namun pengaturan ini akan dikenakan perjalanan pulang pergi ke server untuk setiap baris yang diambil.
Menggunakan aliran untuk parameter IN besar
Gunakan stream atau BLOB dan CLOB yang secara bertahap terwujud untuk menangani pembaruan nilai kolom besar atau mengirim parameter IN besar. Driver JDBC "memotong" jenis ini ke server dalam beberapa perjalanan pulang-pergi, memungkinkan Anda untuk mengatur dan memperbarui nilai yang lebih besar dari yang akan cocok dalam memori.