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

Apa yang dilakukan sp_reset_connection?

Lapisan API akses data seperti ODBC, OLE-DB dan SqlClient memanggil prosedur tersimpan (internal) sp_reset_connection saat menggunakan kembali koneksi dari kumpulan koneksi. Ini dilakukan untuk menyetel ulang status koneksi sebelum digunakan kembali.

Tampaknya tidak ada dokumentasi resmi tentang hal-hal yang disetel ulang, tetapi berikut adalah daftar tidak resminya.

sp_reset_connection menyetel ulang aspek koneksi berikut:

  • Ini mengatur ulang semua status dan nomor kesalahan (seperti @@error)
  • Ini menghentikan semua EC (konteks eksekusi) yang merupakan utas anak dari EC induk yang mengeksekusi kueri paralel
  • Ini akan menunggu operasi I/O luar biasa yang belum selesai
  • Ini akan membebaskan semua buffer yang ditahan di server melalui koneksi
  • Ini akan membuka kunci semua sumber daya buffer yang digunakan oleh koneksi
  • Ini akan melepaskan semua memori yang dialokasikan yang dimiliki oleh koneksi
  • Ini akan menghapus semua pekerjaan atau tabel sementara yang dibuat oleh koneksi
  • Ini akan mematikan semua kursor global yang dimiliki oleh koneksi
  • Ini akan menutup semua pegangan SQL-XML terbuka yang terbuka
  • Ini akan menghapus tabel kerja terkait SQL-XML yang terbuka
  • Ini akan menutup semua tabel sistem
  • Ini akan menutup semua tabel pengguna
  • Ini akan menjatuhkan semua objek sementara
  • Ini akan membatalkan transaksi terbuka
  • Ini akan cacat dari transaksi terdistribusi saat terdaftar
  • Ini akan mengurangi jumlah referensi untuk pengguna di database saat ini; yang melepaskan kunci database bersama
  • Ini akan membebaskan kunci yang diperoleh
  • Ini akan melepaskan pegangan apa pun yang mungkin telah diperoleh
  • Ini akan mengatur ulang semua opsi SET ke nilai default
  • Ini akan mengatur ulang nilai @@rowcount
  • Ini akan mengatur ulang nilai @@identity
  • Ini akan mengatur ulang opsi pelacakan tingkat sesi menggunakan dbcc traceon()

sp_reset_connection TIDAK akan disetel ulang:

  • Konteks keamanan, itulah sebabnya penyatuan koneksi cocok dengan koneksi berdasarkan string koneksi yang tepat
  • Jika Anda memasukkan peran aplikasi menggunakan sp_setapprole, karena peran aplikasi tidak dapat dikembalikan
  • Tingkat isolasi transaksi


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah 'datetimeoffset' menjadi 'smalldatetime' di SQL Server (Contoh T-SQL)

  2. Jawaban Teratas untuk 5 Pertanyaan Pembakaran pada Fungsi COALESCE di SQL Server

  3. Menggunakan fungsi COALESCE untuk membuat nilai dipisahkan dengan koma

  4. CONVERT() dari Tanggal/Waktu ke Contoh String di SQL Server

  5. Ubah Jadwal Agen Server SQL (T-SQL)