最近在写一个航材取价的程序。由于执行的语句复杂,数据量比较大,容易造成超时。
看提示应该是执行SQL的时候超时,我在程序中用的linq。
实际把SQL语句单独执行的时候观察也要40秒左右。
查资料得知
SqlCommand.CommandTimeout
获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
等待命令执行的时间(以秒为单位)。默认为 30 秒。
实际观察的时候也发现,一般提示出错就是在执行语句30秒的时候。
为解决此问题可以在程序中自定义设置执行语句超时的时间。
传统的ADO.NET使用
CommandTimeout = 180
LINQ可以使用
using (MainContext db = new MainContext())
{
db.CommandTimeout = 3 * 60; // 3 Mins
}
要考虑优化SQL语句,改成存储过程之类得了,看来。
时间: 2024-11-05 23:37:59