答案 0 :(得分:1)
由于日志中记录的确切原因,正在卸载程序集:内存压力。您无法做任何具体的事情来防止这种情况(即没有禁用此行为的选项)。您可以做的最多是通过添加更多内存和/或减少查询和/或SQLCLR对象的内存消耗来降低发生这种情况的可能性。
上述建议并不意味着您的查询或.NET代码目前效率低下,只是如果您需要更多内存,则需要添加更多内存或使用更少内存。如果您目前正在尽可能少地使用,那么您几乎需要添加更多内存。
如果没有看到您的.NET代码,就无法确定是否有任何可以改进的区域。但是,问题更有可能是您的SQLCLR代码之外的问题。您需要确定您拥有多少内存以及它的使用位置。尝试在DBA.StackExchange上查看此问题:
SQL Server 2012 memory consumption outside the buffer pool
此外,SQL Server未将程序集标记为UNSAFE
。这就是你如何设置大会的原因。如果它实际上只是进行文件系统访问操作,您可以尝试将程序集更改为EXTERNAL_ACCESS
。