저는 몇 주 동안이 문제가 발생했습니다. 문제는 쿼리가 웹 사이트에서 실행되는 데 4-5 분이 걸리고 ssms에서 실행되는 데 최대 2 ~ 3 초가 걸리는 것입니다. 또한 나는 customerId 변수를 추가하는 것과 같이이 쿼리를 변경하면 웹 페이지에서 빠르게 실행되기 시작하지만 다음날에는 다시 느려지는 것을 발견했습니다. 문제의 쿼리는 다음 중 하나입니다 : asp.net에서 ssms가 느리게 실행됩니다.
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
난 그냥 잘 작동이 다른 사이트에서 실행되는 동일한 쿼리가 있습니다. 사이트 간의 유일한 차이점은 서로 다른 데이터베이스에서 실행되고 느린 사이트는 다른 사이트와 비교하여 두 배 이상의 제품 (54000 제품)을 보유한다는 것입니다. 세 사이트와 데이터베이스는 모두 같은 컴퓨터에서 호스팅됩니다 .
답변을 표시해야합니다. 대체로 매개 변수 스니핑 문제가있는 것 같습니다 – mellodev