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

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

SqlConnection ADO.NET sedang mengimplementasikan kumpulan koneksi. Ini berarti bahwa ketika Anda menutup atau membuang instance SqlConnection , koneksi yang mendasarinya hanya kembali ke kumpulan. Ketika contoh lain dari SqlConnection dibuka, dan koneksi tersedia di kumpulan koneksi, koneksi itu akan digunakan.
Bahkan, halaman dokumen Microsoft di SQL Server Connection Pooling dengan jelas menyatakan:

Perhatian
Kami sangat menyarankan Anda untuk selalu menutup koneksi saat Anda selesai menggunakannya agar koneksi kembali ke pool. Anda dapat melakukan ini menggunakan metode Tutup atau Buang dari objek Connection, atau dengan membuka semua koneksi di dalam pernyataan using di C#, atau pernyataan Using di Visual Basic. Koneksi yang tidak ditutup secara eksplisit mungkin tidak ditambahkan atau dikembalikan ke kumpulan. Untuk informasi selengkapnya, lihat menggunakan Pernyataan atau Cara:Membuang Sumber Daya Sistem untuk Visual Basic.

Ini berarti bahwa cara praktik terbaik menggunakan SqlConnection apakah ini:

using(var con = new SqlConnection(connectionString))
{
    // your sql stuff goes here...
}

BTW, SqlCommand , SqlDataReader dan SqlDataAdapter juga mengimplementasikan IDisposable antarmuka, sehingga mereka juga perlu digunakan dalam konteks using pernyataan:

using(var con = new SqlConnection(connectionString))
{
    using(var cmd = new SqlCommand(sql, con))
    {
        // prepare command here - parameters and stuff like that

        // either
        using(var reader = cmd.ExecuteReader())
        {

        }

        // or 
        using(var adapter = new SqlDataAdapter(cmd))
        {

        }

    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu SQL Server?

  2. Fungsi SQL Server TRIM, LTRIM, dan RTRIM

  3. Cara Menghapus File di SQL Server 2019

  4. Cara Membuat SQL Trace Untuk Menangkap Acara SQL Server

  5. Tidak dapat memotong tabel karena direferensikan oleh batasan FOREIGN KEY?