小编Don*_*Don的帖子

由于内存压力,AppDomain 2 SSISDB 被标记为卸载

我有一个存储过程,它将三个大表连接在一起(每个大约有 2000 万条记录)并将记录加载到临时表中。然后将临时表中的数据合并到一个包含大约 6000 万条记录的现有表中。

服务器脱机并显示以下错误消息:

由于内存压力,AppDomain 2 (SSISDB.dbo.[runtime].1] 被标记为卸载。

错误日志消息

使服务器重新联机后,我重新启动了 SQL 服务以清除可能一直存在的所有进程。再次开始工作,它毫无问题地完成了。

我正在运行具有 128GB RAM 的 SQL Server 2019。64 位虚拟服务器上的最大服务器内存为 117964MB。有人在任务管理器中告诉我内存使用率为 94%,这可能是问题所在。但是 SQL 不会占用所有可用内存并保留它吗?所以这似乎是按预期运行的。

sp_WhoIsActive揭示了一些状态为 'Suspended' 和 'Awaiting_Command' 的查询,但我认为这些没有太大影响。128GB 的​​内存似乎足够了,但我想这与它被要求做的工作有关。知道如何排除故障或防止再次发生吗?

服务器的数据驱动器约为1.6TB。连接中的两个较大的数据库是 10GB 的 1900 万行和 13GB 的 2000 万行。那些进入一个临时表,然后MERGE进入一个 26GB 的表,有 5300 万行。

请求的内存授予为 45GB,实际为 30GB。这份工作在正常工作时间之外运行,所以应该没有竞争查询,但我不能 100% 确认有人没有工作到很晚。

我确实注意到它也必须做 a CONVERT_IMPLICIT。这对所需的内存有重大影响吗?

查询计划链接:https : //www.brentozar.com/pastetheplan/?id=SyXaty7xK

sql-server memory sql-server-2019

4
推荐指数
1
解决办法
287
查看次数

标签 统计

memory ×1

sql-server ×1

sql-server-2019 ×1