2012-04-16 19 views
13

Tôi đã gặp sự cố này trong một vài tuần ngay bây giờ. Vấn đề là truy vấn mất 4-5 phút để chạy trên trang web và tối đa 2 hoặc 3 giây để chạy trong ssms. Ngoài ra tôi thấy rằng sau khi tôi thực hiện một thay đổi cho truy vấn này như thêm biến customerId nó sẽ bắt đầu chạy nhanh trên trang web nhưng vào ngày hôm sau nó lại chậm. Truy vấn được đề cập là:sql chạy nhanh trong ssms chậm trong asp.net

DECLARE @customerID INT 
SET @customerID = @CustID 
DECLARE @MyTable table(
Iden int NOT NULL IDENTITY(1,1), 
ProductID int) 

INSERT INTO @MyTable(ProductID) 
SELECT P.ProductID FROM Product P WITH (NOLOCK) 
left join Compunix_ProductMMY cpmmy with (nolock) on p.ProductID = cpmmy.ProductID 
left join Compunix_CustomerMMY ccmmy with (nolock) on ccmmy.mmyid = cpmmy.mmyid 
WHERE P.Deleted=0 AND P.Published=1 and (ccmmy.customerid = @customerID OR cpmmy.productid IS NULL) 

SELECT c.Name, c.SeName, c.CategoryID 
FROM Category c WITH (NOLOCK) 
JOIN ProductCategory PC With (NOLOCK) ON C.CategoryID = PC.CategoryID 
JOIN @MyTable MT ON PC.ProductID=MT.ProductID 
WHERE C.Published = 1 
GROUP BY c.Name, c.SeName, c.CategoryID 
ORDER BY c.Name 

Tôi có cùng một truy vấn chạy trên 2 trang web khác hoạt động tốt. Sự khác biệt duy nhất giữa các trang web là chúng được chạy trên các cơ sở dữ liệu khác nhau và trang chậm có nhiều hơn gấp đôi sản phẩm (54000 sản phẩm) so với sản phẩm kia 2. Tất cả ba trang và cơ sở dữ liệu của chúng được lưu trữ trên cùng một máy .

+1

Bạn nên đánh dấu câu trả lời. Nhiều khả năng bạn có vấn đề về đánh số tham số – mellodev

Trả lời

18

Rất có thể bạn đang gặp phải vấn đề với tham số đánh hơi.

Tôi khuyên bạn nên đọc Slow in the Application, Fast in SSMS? bởi Erland Sommarskog để hiểu đầy đủ về vấn đề (bài viết dài nhưng rất tốt).

8

Hãy xem sys.dm_exec_sessions cho ứng dụng ASP.Net của bạn và cho phiên SSMS của bạn. Tôi sẽ nguy hiểm khi đoán rằng ít nhất một trong số các cài đặt SET của bạn là khác nhau. Điều này có thể đóng góp cho các kế hoạch khác nhau (cuối cùng điều này được cho là do tham số sniffing) và phía ứng dụng thường kết thúc tồi tệ hơn.

Xem những câu hỏi khác cho rất nhiều chi tiết hơn:

Stored procedure slow when called from web, fast from Management Studio

Procedure times out from ADO.NET but not in SSMS

Query times out when executed from web, but super-fast when executed from SSMS

ADO .NET vs. SQL Server Management Studio - ADO performs worse

+0

Cài đặt SET là gì? – crh225

+0

@ crh225 Những thứ 'SET ARITHABORT',' SET QUOTED_IDENTIFIER', v.v. https://technet.microsoft.com/en-us/library/ms190707(v=sql.105).aspx –

1

Đối với những gì giá trị của nó, rất thỉnh thoảng chúng tôi chạy vào cùng vấn đề; có thể mỗi năm một lần. Bạn có thể dành một tuần đọc và tiêu hóa tất cả những tài nguyên tuyệt vời được đề cập trong các câu trả lời khác, hoặc bạn có thể làm những gì chúng tôi làm; dừng và khởi động SQL Server.

Nó hoạt động một điều trị.

Chúng tôi nhận thấy rằng sự cố này thường xảy ra sau khi các mod/lược đồ/chế độ xem khác nhau có thể không liên quan trực tiếp đến vấn đề trong tầm tay.

Các vấn đề liên quan