首先,这是我们的设置:
现在发生了什么:
在服务器启动一段时间后,我们会在某些数据库上执行查询时收到此错误:
.NET Framework execution was aborted by escalation policy because of out of memory
当我们使用Red Gate SQL Multi Script执行所有客户端数据库的更新(当我们启动功能时)时,会更频繁地发生此错误。在~5000 DBS中,我们有70个错误。再次运行更新脚本,错误发生在一部分上,依此类推,直到我们正确更新所有数据库。这真烦人。
很长一段时间我们都有这个错误。我们的服务器有64GB的RAM,所以我们只添加了更多的内存来最大化SQL Server标准编辑器,但是,几天之后错误又回来了。我们认为错误可能是其他原因的症状。
可能有助于得到答案的一些事情:
max server memory
设置(降至96GB),但我们仍然遇到了这些错误如果需要更多信息,我会更新我的问题。
答案 0 :(得分:0)
我尝试修复已经有4个月,而且我没有再次遇到这个错误。尽管如此,我还没有对bug的确切解释,但这是我尝试过的,它似乎有效:
我的猜测是,在我们5000多个数据库中的每一个中都有相同的.NET CLR程序集可能是问题,并且在某种程度上增加了.NET的内存使用量。
DotNetClrUtils
GROUP_CONCAT
的.NET CLR程序集GROUP_CONCAT
的所有用法,以引用DotNetClrUtils
数据库中的单个实例(称之为:DotNetClrUtils.dbo.GROUP_CONCAT_D(col, ',')
)就是这样,现在这个问题已经消失了!