0

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

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

4

1 回答 1

2

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

请参阅:SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 有什么区别?

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

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

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

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

于 2012-10-04T17:18:40.110 回答