【发布时间】:2010-10-14 08:46:03
【问题描述】:
我在 MSSMS 中执行了约 2 秒的查询(返回 25K 行)
.NET (sqlReader) 中使用的相同查询执行了几分钟!
我也试过只执行阅读器
(注释了 while 循环中的所有代码,只留下 reader.Read() ) - 还是一样!
知道发生了什么吗?
我不是 DBA,也没有特权使用 Profiler - 会询问我的 DBA 并让所有人知道。
与此同时,我注意到在我正在谈论的 SP 中添加“WITH RECOMPILE”参数后,性能得到了显着提升
所以,从我的角度来看,执行计划似乎就是这种情况...... 你怎么看?
[编辑] 此外,我检查过的是执行以下来自 QA 和 .NET 的查询
select @@options
我的理解是它应该为两个环境返回相同的值。 (如果不是不同的 ex.plans 将被使用) 我说的对吗?
[EDIT2] 我读过(来自http://www.sqldev.net/misc/fn_setopts.htm)ARITHABOIRT=ON 在 QA 中(在 .NET 中它是关闭的)
是否有人知道如何为每个 .NET 连接强制 ARITHABOIRT=ON?
【问题讨论】:
-
Sql 查询分析器是否揭示了有关该问题的任何提示?
-
EJB:代码不值得发布。即使我们使用纯执行阅读器命令,问题也是一样的(在 MS 帮助中可用)
-
Matt Murrell:我不是 DBA,对 Profiler 了解不多。你能指导在哪里/如何检查这些提示吗?
标签: .net sql-server sql-server-2005 sqldatareader