Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server中的程序集继续定期卸载和加载_Sql Server_Sqlclr - Fatal编程技术网

Sql server SQL Server中的程序集继续定期卸载和加载

Sql server SQL Server中的程序集继续定期卸载和加载,sql-server,sqlclr,Sql Server,Sqlclr,SQL Server不断加载和卸载我的程序集,并将它们标记为不安全。你知道为什么会这样吗 我正在下面附加日志文件 由于日志中所述的确切原因,正在卸载组件:内存压力。您无法采取任何具体措施来防止这种情况(即,没有禁用此行为的选项)。您所能做的最多就是通过添加更多内存和/或减少查询和/或SQLCLR对象的内存消耗来减少发生这种情况的可能性 上面的建议并不意味着当前查询或.NET代码中存在任何低效的内容,只是如果需要更多内存,则需要添加更多或使用更少的内存。如果您当前正在使用尽可能少的内存,那么您几乎

SQL Server不断加载和卸载我的程序集,并将它们标记为不安全。你知道为什么会这样吗

我正在下面附加日志文件


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

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

如果没有看到您的.NET代码,就无法确定是否有可以改进的地方。但是,问题很可能不在SQLCLR代码范围内。您需要确定您有多少内存以及在哪里使用。请尝试在DBA.StackExchange上查看此问题:


此外,SQL Server没有将程序集标记为不安全。这就是装配集的设置方式。如果程序集实际上只是执行文件系统访问操作,您可以尝试将其更改为
外部访问

如何减少或增加CLR的内存消耗?@ValK我已更新了答案,但这取决于您的代码。您的代码可能会很好,我只是说这是一个需要查看的区域。谢谢。我认为CLR代码很好。我想尝试从所有可用的sql内存中为CLR分配更多内存,但不确定如何分配。通过阅读你文章中的一些链接,我发现CLR内存是max服务器内存的一部分,是真的吗?我正在解决另一个问题。另外,你到底想修复什么?是有什么东西坏了,还是你只是在日志中注意到了,不知道该怎么想?从您的日志文件中,它显示AppDomain在卸载并在一秒钟后重新加载之前已经存在了40分钟。虽然不理想,但我不认为这会让事情变慢。它是?