【发布时间】:2011-09-20 13:19:52
【问题描述】:
我有一个在 Windows XP x86 双核上运行的 .net 3.5 应用程序。 我现在已经在 Windows 7 x64、超线程四核上安装了该应用程序。 该应用程序是一个通过 WCF 与 Windows 服务通信的 gui,该服务通过 Linq2Sql 与 SQLExpress 2008 R2 通信。 我们还使用 Windsor Castle 进行依赖注入/IoC
XP 环境中的某个 Linq2Sql 语句大约需要 1,5-2 秒。在 Windows 7 中,此语句大约需要 5-7 秒。我已经运行了 sql profiler 和资源监视器,似乎应用程序等待了大约 5 秒,然后触发了实际的 sql-query。所以延迟似乎发生在我的 Datacontext 下面和数据库之前
我尝试了以下方法:
- 将连接字符串改为sql认证
- 拔掉网线
- 已卸载防病毒程序
- 已禁用 LLMNR
- 删除了网卡上的 IPv6
- 在代码中添加了未提交读取的事务范围
- 尝试加锁(多线程环境)
- 试图将应用程序固定到一个 cpu
- 以管理员身份运行
我的理论是某些事情正在超时,但是什么?!?
【问题讨论】:
-
有问题的 LINQ 语句是什么?
-
您必须隔离花费您时间的代码。将日志语句添加到一些战略位置,以查看其挂起的位置。
-
你试过编译查询吗?
-
有问题的查询是一个非常简单的选择,其中 id= 我添加了日志记录,它表明它是对数据库的实际请求需要时间。我没有尝试编译查询,但如果在 XP 上没问题,我不明白为什么在 Win 7 上需要它
-
@Manatherin:我卸载了防病毒软件(带防火墙),然后 Windows 中的防火墙被禁用。所以,不...
标签: c# linq-to-sql windows-7 sql-server-express