我已经有这个问题几个星期了。问题是查询在网站上运行需要 4-5 分钟,而在 ssms 中运行最多需要 2 或 3 秒。我还发现,在更改此查询(例如添加 customerId 变量)后,它将开始在网页上快速运行,但到第二天又变慢了。有问题的查询是这个:
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 种产品)多一倍多。所有三个站点及其数据库都托管在同一台机器上.