Chúng tôi có một ứng dụng 3 tầng với máy khách C#, lớp dịch vụ web C# WCF và cơ sở dữ liệu SQL Server. Dịch vụ web kết nối với cơ sở dữ liệu với ADO.NET. Tất cả mã C# của chúng tôi đều sử dụng .NET Framework 2.0.Giám sát ADO.NET Connection Thời gian mở
Gần đây, khách hàng đã thực hiện kiểm tra căng thẳng trên ứng dụng của chúng tôi. Trong quá trình thử nghiệm, máy chủ web tạo ra nhiều lỗi như sau:
Không thể kết nối với cơ sở dữ liệu cho chuỗi kết nối '...'. Thời gian hết hạn. Khoảng thời gian chờ trôi qua trước khi hoàn thành thao tác hoặc máy chủ không phản hồi.
Tôi biết có nhiều cách để bắt lỗi kết nối khi nhóm kết nối đầy và thử lấy kết nối bên ngoài hồ bơi kết nối. Chúng tôi cũng tìm thấy một số truy vấn cần được điều chỉnh, nhưng chúng không giải thích thời gian chờ kết nối máy chủ web.
Chúng tôi đang cố gắng tìm ra lý do máy chủ web định thời gian kết nối với cơ sở dữ liệu. Tôi đã thiết lập máy chủ web để bật tất cả các ADO.NET performance counters. Tuy nhiên, tôi không thấy bất cứ điều gì liên quan đến thời gian cần thiết để kết nối hoặc kết nối thời gian chờ hoặc tương tự. Lý tưởng nhất, chúng tôi sẽ có thể vẽ đồ thị thời gian kết nối trong perfmon
bên cạnh các bộ đếm ADO.NET khác.
Có cách nào để theo dõi hiệu suất ADO.NET trong các kết nối có được không?
Tôi tưởng tượng chúng ta có thể tạo bộ đếm hiệu suất "thời gian mở kết nối trung bình" của riêng mình bằng cách cố gắng mở kết nối, nhưng tôi muốn sử dụng thứ gì đó đã tồn tại.
Trợ giúp SQL Profiler có liên quan đến vấn đề này không? –
@MrMoose: Hồ sơ đã giúp rất nhiều trong việc tìm kiếm một số truy vấn vấn đề. Nhưng tôi cần một cái gì đó cụ thể để theo dõi thời gian kết nối để xem khi họ đi lên và khi họ bắt đầu thời gian ra ngoài. –