私はこの問題を数週間抱えています。問題は、クエリがWebサイトで実行されるのに4〜5分かかり、ssmsで実行されるのに最大で2〜3秒かかることです。また、customerId変数を追加するなど、このクエリに変更を加えた後、Webページですぐに実行が開始されますが、翌日には再び遅くなることがわかりました。問題のクエリは次のとおりです。
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つと比較して2倍以上の製品(54000製品)があることです。3つのサイトとそのデータベースはすべて同じマシンでホストされています。