私はこの問題を数週間続いています。問題は、クエリがウェブサイトで実行するのに4〜5分かかり、ssmsで2〜3秒かかることです。また、私はcustomerId変数を追加するようなこのクエリを変更した後、Webページ上ですばやく実行し始めますが、翌日までには再び遅くなることがわかりました。問題のクエリは次のとおりです。sqlが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
他の2つのサイトで同じクエリを実行していますが、問題はありません。サイト間の唯一の違いは、それらが異なるデータベース上で実行され、スローサイトが他のサイトと比較して2倍以上の製品(54000製品)を持っていることです。3つのサイトとそのデータベースはすべて同じマシン。
回答にはマークを付ける必要があります。ほとんどの場合、パラメータスニッフィングの問題があった可能性があります – mellodev