SQL Server中的程序集会定期再次卸载和加载

时间:2016-03-22 15:20:41

标签: sql-server sqlclr

SQL Server不断加载和卸载我的程序集,将它们标记为不安全。任何想法为什么会这样做。

我在下面附上日志文件。

Pymongo has some optional C extensions

1 个答案:

答案 0 :(得分:1)

由于日志中记录的确切原因,正在卸载程序集:内存压力。您无法做任何具体的事情来防止这种情况(即没有禁用此行为的选项)。您可以做的最多是通过添加更多内存和/或减少查询和/或SQLCLR对象的内存消耗来降低发生这种情况的可能性。

上述建议并不意味着您的查询或.NET代码目前效率低下,只是如果您需要更多内存,则需要添加更多内存或使用更少内存。如果您目前正在尽可能少地使用,那么您几乎需要添加更多内存。

如果没有看到您的.NET代码,就无法确定是否有任何可以改进的区域。但是,问题更有可能是您的SQLCLR代码之外的问题。您需要确定您拥有多少内存以及它的使用位置。尝试在DBA.StackExchange上查看此问题:

SQL Server 2012 memory consumption outside the buffer pool

此外,SQL Server未将程序集标记为UNSAFE。这就是你如何设置大会的原因。如果它实际上只是进行文件系统访问操作,您可以尝试将程序集更改为EXTERNAL_ACCESS