【发布时间】:2011-04-19 09:36:32
【问题描述】:
我有一个网页需要 10 分钟才能对数据库运行一个查询,但从 SQL Server Management Studio 运行时,相同的查询会在不到一秒的时间内返回。
网页只是在执行存储过程的数据库中触发 SQL,而该存储过程又对四个表执行非常简单的选择。同样,代码是基本的 ADO,在 SqlCommand 上设置 CommandText,然后执行 ExecuteReader 以获取数据。
网页通常运行速度很快,但是当它变慢时,加快速度的唯一方法是对正在查询的表上的索引进行碎片整理(不同的时间不同),这在相同的情况下似乎没有意义查询手动执行的速度非常快。
我查看了this question,但它并不适用,因为该网页实际上只是在数据库中触发文本。
有没有人有什么好主意,为什么这会在一种方式而不是另一种方式变慢? 谢谢
【问题讨论】:
-
可能是参数嗅探。您使用的是哪个版本的 SQL Server?如果 SQL Server 2005+ 尝试the query here 让两个计划进行比较。
标签: c# sql sql-server sql-server-2005 performance