LINQ to SQL超时在一台服务器而不是其他服务器上

时间:2012-10-04 16:35:02

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

我正在使用LINQ to SQL来访问存储过程。这在我的本地SQL服务器上工作正常。但是一旦我指向内部网络中的不同服务器,我就会超时。在SQL事件探查器中,我可以看到发送到问题服务器的查询。这应该意味着查询正在命中服务器并执行权限吗?

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

1 个答案:

答案 0 :(得分:2)

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

请参阅:What is the difference between SqlCommand.CommandTimeout and SqlConnection.ConnectionTimeout?

摘要是连接超时是建立连接的时间量。

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

如果您看到SQL Profiler中显示的查询,则表示正在发送该查询。所以你基本上达到命令超时默认限制30秒。

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