Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thực thi sp_reset_connection có nghĩa là gì trong Sql Server Profiler?

Giống như các câu trả lời khác đã nói, sp_reset_connection cho biết rằng nhóm kết nối đang được sử dụng lại. Hãy nhận biết một hậu quả cụ thể!

Blog MSDN của Jimmy Mays cho biết:

sp_reset_connection KHÔNG đặt lại mức cô lập của giao dịch thành mặc định của máy chủ từ cài đặt của kết nối trước đó.

CẬP NHẬT :Bắt đầu với SQL 2014, đối với trình điều khiển máy khách có TDS phiên bản 7.3 trở lên, các mức cách ly giao dịch sẽ được đặt lại về mặc định.

ref:SQL Server:Rò rỉ mức cách ly trên các kết nối được gộp chung

Đây là một số thông tin bổ sung:

sp_reset_connection làm gì?

Các lớp của API truy cập dữ liệu như ODBC, OLE-DB và System.Data.SqlClient đều gọi thủ tục được lưu trữ (nội bộ) làsp_reset_connection khi sử dụng lại kết nối từ một nhóm kết nối. Việc này được thực hiện để thiết lập lại trạng thái của kết nối trước khi nó được sử dụng lại, tuy nhiên không có tài liệu nào được ghi lại những gì cần thiết lập lại. Bài viết này triesto ghi lại các phần của kết nối được đặt lại.

sp_reset_connection đặt lại các khía cạnh tiếp theo của kết nối:

  • Tất cả các trạng thái và số lỗi (như lỗi @@)

  • Dừng tất cả các EC (ngữ cảnh thực thi) là các chuỗi con của một EC cha đang thực thi một truy vấn song song

  • Chờ đợi bất kỳ I / Ooperations nổi bật nào

  • Giải phóng mọi vùng đệm được giữ trên máy chủ bằng kết nối

  • Mở khóa bất kỳ tài nguyên bộ đệm nào được kết nối sử dụng

  • Giải phóng tất cả bộ nhớ được cấp phát do kết nối cung cấp

  • Xóa mọi công việc hoặc các bảng tạm thời được tạo bởi kết nối

  • Giết tất cả các con trỏ toàn cầu thuộc sở hữu của kết nối

  • Đóng mọi trình điều khiển SQL-XML đang mở

  • Xóa mọi bảng công việc liên quan đến SQL-XML đang mở

  • Đóng tất cả các bảng hệ thống

  • Đóng tất cả các bảng người dùng

  • Bỏ tất cả các đối tượng tạm thời

  • Hủy bỏ các giao dịch đang mở

  • Các khiếm khuyết từ một giao dịch phân tán khi nhập ngũ

  • Giảm số lượng tham chiếu cho người dùng trong cơ sở dữ liệu hiện tại làm giảm các khóa cơ sở dữ liệu được chia sẻ

  • Miễn phí các khóa có được

  • Giải phóng mọi tay cầm có được

  • Đặt lại tất cả các tùy chọn SET về giá trị mặc định

  • Đặt lại giá trị @@ rowcount

  • Đặt lại giá trị nhận dạng @@

  • Đặt lại bất kỳ tùy chọn theo dõi cấp phiên nào bằng cách sử dụng dbcc traceon ()

  • Đặt lại CONTEXT_INFO thành NULL trong SQL Server 2005 và mới hơn [không phải là một phần của bài viết gốc]

sp_reset_connection sẽ KHÔNG đặt lại:

  • Bối cảnh bảo mật, đó là lý do tại sao gộp kết nối khớp với các kết nối dựa trên chuỗi kết nối chính xác

  • Vai trò ứng dụng được nhập bằng sp_setapprole, vì không thể hoàn nguyên các vai trò ứng dụng trước SQL Server 2005. Bắt đầu từ SQL Server 2005, các vai trò ứng dụng có thể được hoàn nguyên, nhưng chỉ với thông tin bổ sung không phải là một phần của phiên. Trước khi đóng kết nối, các vai trò ứng dụng cần được hoàn nguyên theo cách thủ công qua sp_unsetapprole bằng cách sử dụng giá trị "cookie" được ghi lại khi sp_setapprole được thực thi.

Lưu ý:Tôi bao gồm danh sách ở đây vì tôi không muốn nó bị mất trong trang web nhất thời.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các cách tốt nhất để sử dụng câu lệnh SQL DELETE trong bảng SQL

  2. Các truy vấn được thực thi lần cuối cho một cơ sở dữ liệu cụ thể

  3. Cách thay thế các giá trị (null) bằng đầu ra 0 trong PIVOT

  4. Làm cách nào để loại bỏ tất cả các ký tự không phải chữ cái khỏi chuỗi trong SQL Server?

  5. Khám phá cơ sở dữ liệu khôi phục máy chủ SQL với tùy chọn khôi phục so với không khôi phục