How to definitely fix this error: .NET Framework execution was aborted by escalation policy because of out of memory?

How to definitely fix this error: .NET Framework execution was aborted by escalation policy because of out of memory?

首先,这是我们的设置:

现在会发生什么:

有时,在服务器启动一段时间后,我们在对某些数据库执行查询时收到此错误:

.NET Framework execution was aborted by escalation policy because of out of memory

当我们使用 Red Gate SQL Multi Script 执行所有客户端数据库的更新(当我们启动功能时)时,此错误更常发生。在大约 5000 个 DBS 中,我们在其中 70 个上有错误。 运行 再次更新脚本,部分发生错误,依此类推,直到我们正确更新了所有数据库。这很烦人。

这个错误很久了。我们的服务器有 64GB 的 RAM,所以我们只是添加了更多内存以最大化 SQL 服务器标准编辑器,但几天后错误仍然出现。我们认为该错误可能是其他问题的征兆。

一些可能有助于获得答案的事情:

如果需要更多信息,我会更新我的问题。

我尝试修复已经4个月了,我没有再遇到这个错误。尽管如此,我仍然没有关于这个错误的确切解释,但这是我尝试过的并且似乎有效:

我的猜测是,我们的 5000 多个数据库中的每一个都具有相同的 .NET CLR 程序集可能是问题所在,并以某种方式增加了 .NET 的内存使用量。

  1. 我创建了一个名为 DotNetClrUtils
  2. 的新数据库
  3. 我在这个数据库中复制了 GROUP_CONCAT 的 .NET CLR 程序集
  4. 我在所有客户端代码和存储过程中更改了 GROUP_CONCAT 的所有用法,以引用 DotNetClrUtils 数据库中的单个实例(这样调用它:DotNetClrUtils.dbo.GROUP_CONCAT_D(col, ',')

就这些,现在这个问题没有了!