0

带有 EF 6.1.3 的 .NET Core REST API 作为 targetFramework 在 net452 上运行,需要几分钟来执行过程并将结果返回给模型,但使用相同的 SP 参数,在 SSMS 17 中执行只需一秒钟。它是 SQL Server 2016具有少量加密列并具有 30k+ 记录 (DEV) 的数据库。

  • 最初我得到 SQL 超时 - 现在通过 在appsettings.DEV.json中设置连接超时来解决,还通过在上下文的构造函数上设置以下命令超时将命令超时增加到无限:

    var adapter = (IObjectContextAdapter)this;
    var objectContext = adapter.ObjectContext;
    objectContext.CommandTimeout = 0 * 60;
    
  • 在 SSMS 17 中,关闭 - 设置 ARITHABORT以重现这种缓慢但无法重现 - 它在有/没有 ARITHABORT 标志的情况下在一秒钟内执行。SP 只做 SELECT(因为它有 AE 列,所以只对它执行相等条件)

4

0 回答 0