【问题标题】:LINQ to SQL timeout on one server and not other一台服务器而不是其他服务器上的 LINQ to SQL 超时
【发布时间】:2012-09-25 18:07:10
【问题描述】:

我正在使用 LINQ to SQL 访问存储过程。这在我的本地 sql 服务器上运行良好。但是一旦我指向内部网络中的另一台服务器,我就会超时。在 SQL Profiler 中,我可以看到发送到问题服务器的查询。这应该意味着查询正在访问服务器并执行正确?

我可以直接在问题服务器上运行 LINQ 输出而不会出现问题。这可能不是代码问题,而是 sql server 服务器配置有问题吗?我应该检查什么来解决它?

【问题讨论】:

  • 存储过程不受限制时将返回 20k 行。手动执行只需 30 多秒。我将连接字符串(“连接超时”)设置为 500。

标签: c# .net sql-server linq linq-to-sql


【解决方案1】:

连接超时与命令超时不同。

见:What is the difference between SqlCommand.CommandTimeout and SqlConnection.ConnectionTimeout?

总结是连接超时是建立连接的时间量。

命令超时是让命令运行的时间量。不仅仅是获取第一条记录需要多长时间,而是获取整个数据集需要多长时间。

如果您看到查询出现在 SQL Profiler 中,那么是的,它正在发送。所以你基本上达到了 30 秒的命令超时默认限制。

我建议从将命令超时更改为 500 开始,然后看看它会将您带到哪里。然后我会开始做一些性能分析来确定为什么需要这么长时间。也许您可以删除一些请求的数据,甚至添加额外的索引以更好地支持查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 2015-10-14
    • 2014-08-25
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多