and*_*bel 7 sql-server sql-clr
每隔几天我的 SQL Server 实例就会意外终止并重新启动。在日志中,请参阅:
.NET Framework 公共语言运行时发生致命错误。SQL Server 正在关闭。(事件 ID 6536)。
在终止之前,我看到几条消息说:
由于内存压力,AppDomain XXX 被标记为卸载。
我有 60 个 CLR 存储过程,它们是从我的前任那里继承而来的。所有这些都应该是使用少量数据的短存储过程。如何找到导致内存压力的 CLR 存储过程?
我在跑:
Microsoft SQL Server 2016 (SP1-CU4) (KB4024305) - 13.0.4446.0 (X64) 2017 年 7 月 16 日 18:08:49 Windows Server 2016 Standard 6.3(内部版本 14393:)(管理程序)上的标准版(64 位)
哪个 CLR 存储过程造成内存压力,导致 sqlservr.exe 意外终止?
SAFE CLR 过程不会使 SQL Server 崩溃,因此查看 CLR 的托管内存使用情况不太可能找到根本原因。
更有可能的是,您有不安全的 CLR 代码与存在内存泄漏的本机代码交互。因此,请查看任何 CLR 项目是否使用了第 3 方本机组件(例如 OleDB 或 ODBC 驱动程序),或者是否使用了 P/Invoke 或 COM Interop。
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |