Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah memeriksa nilai kunci utama sebelum memasukkan lebih cepat daripada menggunakan try-catch?

Pada SQL 2008, Anda cukup menggunakan MERGE - jauh lebih sederhana daripada salah satu pendekatan Anda.

Saya juga tidak bersama Anda tentang "SAYA TIDAK ingin menggunakan transaksi karena alasan kinerja" - setiap perintah DML yang Anda jalankan adalah bagian dari beberapa transaksi, jadi ada transaksi bahkan jika Anda tidak membukanya secara eksplisit. Jika Anda mengalami masalah kinerja, Anda dapat memposting lebih banyak detail sehingga Anda mendapatkan lebih banyak bantuan terkait kinerja.

Sunting:Jika Anda membutuhkan penyisipan yang sangat cepat, jangan masukkan satu baris dalam satu waktu. Tambahkan kumpulan baris, dan gunakan MERGE - keuntungan yang akan Anda dapatkan dari menyisipkan kumpulan baris sekaligus akan jauh melebihi peningkatan kecil apa pun yang akan Anda dapatkan dari mengoptimalkan kecepatan menambahkan satu baris.

Bagaimanapun, penalaran teoretis tentang apa pun yang terkait dengan basis data biasanya tidak cukup baik. Anda benar-benar perlu melakukan benchmark untuk menentukan mana yang lebih cepat. Apa yang Anda sebut "kueri yang tidak perlu untuk baris yang ada" mungkin sama sekali tidak berarti, dan Anda tidak akan tahu apakah ini masalahnya sampai Anda mengukurnya dalam kondisi yang realistis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri SQL Server Passthrough sebagai dasar untuk kumpulan data DAO di Access

  2. Bagaimana cara menjaga instance koneksi SQL Server tunggal terbuka untuk banyak permintaan di C #?

  3. Haruskah Anda membuat beberapa panggilan penyisipan atau meneruskan XML?

  4. SQL Server Alokasi jumlah dalam tagihan

  5. SQL - Mengurangi nilai yang menipis dari baris