DbContext SaveChanges-System.Data.SqlClient.SqlException:执行超时已过期

时间:2018-10-12 09:11:06

标签: entity-framework database-performance database-tuning

我的生产应用程序有时会发生这种情况。

我的情况很简单,如下所示:

using (var ctx = new MyDbContext())
{
  ctx.SMSReplies.Add(new SMSReply
  {
    //Set properties here
  });
  ctx.SaveChanges();
}

有时会失败,并显示以下错误:

  

System.Data.Entity.Infrastructure.DbUpdateException:发生错误   在更新条目时。有关详细信息,请参见内部异常。

     

---> System.Data.Entity.Core.UpdateException:更新条目时发生错误。有关详细信息,请参见内部异常。

     

---> System.Data.SqlClient.SqlException:执行超时已过期。在操作完成之前超时   服务器没有响应。该声明已终止。

     

---> System.ComponentModel.Win32Exception:等待操作超时

我知道我可以增加我的DbContext的命令超时,但这不是重点;我的担忧远不止于此...

默认超时为30秒,所以我担心的是...数据库中到底发生了什么,这可能导致将行简单插入到少于5000行的表中需要30多个时间秒?!?!

任何DBA都可以指导我应该对数据库进行哪些性能监视和调整以阐明根本原因?

1 个答案:

答案 0 :(得分:0)

我目前正在调试同一问题-您是否遇到了任何神圣的解决方案?