Khi tôi xác định rằng đó là kết nối ADO.NET ở gốc rễ của vấn đề, chuỗi này đã dẫn tôi đến câu trả lời.
Về cơ bản, các kết nối thông qua Sql Server Management Studio (SSMS) theo mặc định có SET ARITHABORT ON
. Kết nối ADO.NET không.
Đặt ARITHABORT OFF
và việc thực hiện truy vấn trực tiếp thông qua SSMS mang lại cho tôi thời gian phản hồi chậm như nhau.
Sự khác biệt chính khi chạy có hoặc không có cài đặt này là một kế hoạch truy vấn khác được tạo cho hai cuộc gọi. Khi ARITHABORT
đã OFF
, lệnh SSMS sẽ sử dụng kế hoạch truy vấn được lưu trong bộ nhớ cache được biên dịch trước mà kết nối ADO.NET đang sử dụng và do đó hết thời gian chờ.
Bằng cách chạy các lệnh sau với tư cách là quản trị viên trên cơ sở dữ liệu, tất cả các truy vấn chạy như mong đợi bất kể ARITHABORT
cài đặt.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Tôi chỉ có thể cho rằng một kế hoạch truy vấn đã biên dịch đã bị hỏng hoặc không hợp lệ.
Tôi sẽ coi đây là giải pháp (tôi đã bỏ phiếu cho câu trả lời) trên chủ đề khác
Cảm ơn.