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

Bagaimana cara mendapatkan penanganan kebuntuan Server Sql yang efisien di C # dengan ADO?

Pertama, saya akan meninjau kode SQL 2000 saya dan memahami mengapa kebuntuan ini terjadi. Memperbaiki ini mungkin menyembunyikan masalah yang lebih besar (Misalnya indeks tidak ada atau kueri buruk).

Kedua, saya akan meninjau arsitektur saya untuk mengonfirmasi bahwa pernyataan kebuntuan benar-benar perlu sering dipanggil (Apakah select count(*) from bob harus dipanggil 100 kali per detik?).

Namun, jika Anda benar-benar membutuhkan dukungan kebuntuan dan tidak memiliki kesalahan dalam SQL atau arsitektur Anda, cobalah sesuatu di sepanjang baris berikut. (Catatan:Saya harus menggunakan teknik ini untuk sistem yang mendukung ribuan kueri per detik dan jarang menemui jalan buntu)

int retryCount = 3;
bool success = false;  
while (retryCount > 0 && !success) 
{
  try
  {
     // your sql here
     success = true; 
  } 
  catch (SqlException exception)
  {
     if (exception.Number != 1205)
     {
       // a sql exception that is not a deadlock 
       throw; 
     }
     // Add delay here if you wish. 
     retryCount--; 
     if (retryCount == 0) throw;
  }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mencari Objek Database dan Data Tabel di SQL Server

  2. SQL Server v.Berikutnya :Performa STRING_AGG, Bagian 2

  3. T-SQL Lewati Ambil Prosedur Tersimpan

  4. Apakah Mengakhiri Penggunaan menutup Koneksi SQL yang terbuka

  5. Database Sistem SQL Server – Pemeliharaan MSDB