Chúng tôi đang sử dụng SQL Server 2005 với Dịch vụ báo cáo.Hiệu suất chậm của Dịch vụ báo cáo, rất nhanh trong QueryAnalyser
Chúng tôi có một số báo cáo, mỗi báo cáo có chứa một truy vấn SQL tương đối đơn giản - bởi "tương đối", tôi có nghĩa là chúng tôi có một vài tham gia, nhưng không có gì tệ hơn. Chúng tôi không gọi bất kỳ thủ tục được lưu trữ trong các truy vấn của chúng tôi - đây không phải là trường hợp đánh hơi thông số.
Khi thực hiện một trong các báo cáo này (hãy gọi báo cáo A) thông qua Dịch vụ báo cáo, phải mất rất nhiều thời gian để hoàn thành - theo thứ tự hàng chục phút hoặc thậm chí hàng giờ. Khi thực hiện truy vấn SQL tương ứng trong Query Analyzer, nó sẽ hoàn thành sau vài giây.
Số hàng được trả về từ cơ sở dữ liệu có thể bằng 1 - chưa, báo cáo không bao giờ hoàn thành.
Các báo cáo khác đang hoạt động tốt.
Tìm trong bảng ExecutionLog trên Dịch vụ báo cáo, tôi có thể thấy hầu hết thời gian là trong TimeDataRetrieval (và chúng ta đang nói hàng triệu giây ở đây ...) - những lần báo cáo thực sự hoàn thành. Nếu báo cáo được hủy bỏ theo cách thủ công, thì TimeDataRetrieveal là 0 và TimeProcessing là vô lý cao thay thế.
Tôi đã xem nhật ký của Reporting Services, nhưng mọi thứ đều bình thường.
Bây giờ, trước khi bạn bắt đầu đề xuất "khóa" - tốt, các truy vấn của chúng tôi đã bật gợi ý nolock.
Vì nó là viết tắt, tôi đã đạt đến giới hạn của trí tưởng tượng của tôi cố gắng tìm ra lỗi. Bất kỳ suy nghĩ, những hiểu biết sẽ được vui lòng đánh giá cao.
/Christoffer
Hãy thử & sử dụng lược tả SQL để xem cách truy vấn giống nhau được nhận khác nhau khi được chuyển từ Query Analyzer vs Reporting Services và xem mất bao lâu để hoàn thành nó. Nó có thể được giải thích tham số có thể gây ra vấn đề cho dịch vụ báo cáo? – shahkalpesh
Cảm ơn bạn đã bình luận. Tôi đã thử sử dụng SQL profiler. Các tham số khá đơn giản - hai ngày và một vài chuỗi. Những ngày sẽ là nghi phạm chính, nhưng họ dường như được giải thích ok. Không có gì thực sự nổi bật trong profiler, các tham số được gửi đến SetSessionParameters trông ok. – Christoffer
Tôi cũng nên thêm rằng tôi có thể thực hiện báo cáo trực tiếp trong Visual Studio mà không gặp sự cố. – Christoffer