sql 在 ssms 中运行快在 asp.net 中慢

标签 sql asp.net .net sql-server-2008 ssms

我已经遇到这个问题几个星期了。问题是查询在网站上运行需要 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 个站点上运行了相同的查询,它们运行良好。站点之间的唯一区别是它们运行在不同的数据库上,与其他两个站点相比,慢速站点上的产品(54000 个产品)多出一倍多。所有三个站点及其数据库都托管在同一台机器上.

最佳答案

您可能会遇到参数嗅探的问题。

我建议阅读 Slow in the Application, Fast in SSMS?作者 Erland Sommarskog 以全面了解该问题(文章很长但非常好)。

关于sql 在 ssms 中运行快在 asp.net 中慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175422/

相关文章:

c# - 提取字符串数据 - 从右侧?

c# - 使属性不区分大小写

java - 是否可以使用 Camel "timer"组件的属性来修改用于定期轮询的 sql select(按时间戳)?

mysql - 跨列选择不同的条目?

c# - Linq Include 和 Where 父子关系条件

c# - 使用 DevExpress 或 Infragistics 将 HTML 或 PDF 转换为 RTF/DOC 或将 HTML/PDF 转换为图像

c# - WPF - 对许多元素产生相同的效果

c# - 单例的简单实现

mysql - 如果使用 where 条件更改了列的数据类型,如何查找列的记录

java - 如何从PreparedStatementWrapper对象打印语句?