我一直有这个问题几个星期了。问题是查询需要4-5分钟才能在网站上运行,最多2到3秒钟才能在ssms中运行。此外,我发现在对这个查询进行更改(如添加customerId变量)之后,它将开始在网页上快速运行,但到第二天再次变慢。有问题的查询是这一个:sql在asp.net中运行速度很慢sslms
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其他网站上工作得很好。两个站点之间唯一的区别在于它们运行在不同的数据库上,而慢速站点比其他站点上的产品(54000个产品)多一倍以上。所有三个站点及其数据库都托管在同一台机器上。
您应该标记答案。最有可能你有参数嗅探问题 – mellodev 2012-06-14 20:32:48