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.