1

我们目前正在迁移到 SQL Server 2019 标准版上的内存表。基于磁盘的表是 55GB 数据 + 54Gb 索引(71M 记录)。内存为 900 GB。但在数据迁移期间(INSERT 语句),我们收到一条错误消息:

消息 41823,级别 16,状态 109,行 150 无法执行操作,因为数据库已达到其内存表配额。此错误可能是暂时的。请重试该操作。

内存文件是“无限的”,所以看起来很奇怪,因为 SQL Server 2019 不应该对内存表有任何大小限制。

4

1 回答 1

2

为什么您认为标准版中单个 mem-opt 表中的内存数据大小是无限的?

来自SQL Server 2016 SP1 中的内存限制(根据2019 文档,所有这些仍然适用):

实例上的每个用户数据库可以额外分配 32GB 给内存优化表,超出缓冲池限制。

所以,我想你可以做你想做的事,但你必须将它分布在多个数据库中。您将无法在单个 mem-opt 表中存储超过 32GB 的空间,甚至不能在单个数据库中的多个 mem-opt 表中存储超过 32GB。

来自2019 文档的裁剪且可能缩放不当的屏幕截图:

在此处输入图像描述

于 2021-10-30T04:41:19.417 回答