【问题标题】:AppDomain unloadedAppDomain 已卸载
【发布时间】:2016-08-12 00:19:39
【问题描述】:

我知道我以前问过这个问题,但没有得到好的答案。由于我认为与我的 CLR 有关的内存压力,我的 sql server 2014 不断卸载 Appdomain。我现在不知道如何解决它。我已经尝试了很多东西。我会将我的日志附加到这篇文章中。感谢您的任何帮助。

【问题讨论】:

    标签: sql-server memory sql-server-2014 sqlclr


    【解决方案1】:

    自从您第一次在此处发布同样的问题以来,一切都没有改变:

    Assemblies in SQL Server keep unloading and loading again periodically

    没有办法阻止 SQL Server 卸载它选择的任何 AppDomain。

    内存压力意味着剩下的物理内存不多,SQL Server 更喜欢物理内存而不是交换/页面文件。以下是需要注意的事项:

    1. 查看您的 SQLCLR 代码。您是否正确关闭一次性物品?您是否在内存中存储了很多东西?为什么您的程序集标记为UNSAFE?是因为您将数据存储在静态变量中吗?您使用的 .NET 类是否存在内存泄漏,因此无法在 SAFEEXTERNAL_ACCESS 程序集中使用(例如,使用 TimeZoneInfo 在两个 TimeZoneID 之间转换 DATETIME 值)?
    2. 即使 SQLCLR 代码没有运行,服务器上还有多少可用内存? SQL Server 是否配置为使用足够的系统内存(即检查 Max Server Memory 设置)。
    3. 除了 SQL Server 之外,操作系统上是否还有其他应用程序/进程在运行?如果是这样,它们可能会占用本应进入 SQL Server 的物理内存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-23
      • 2017-09-26
      • 2012-11-06
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多