我需要在 SQL Server 2008 R2 Express 上运行一个“大”脚本,但它失败了
资源池“内部”中的系统内存不足,无法运行此查询。
该脚本保存到磁盘大约 10MB,包含大约 54000 个顶级语句(插入/删除/更新)并声明了大约 5000 个变量(类型BIGINT
)。
我正在运行 SQL Server 2008 R2 Express 64 位 10.5.1746。有 3GB 分配给 VM,1GB 分配给 SQL Server,每个查询至少 512kb 内存。的结果DBCC MEMORYSTATUS
可以在这个链接上找到。
该脚本仅仅是一个(轻量级)生产数据库的恢复,它被导出为 SQL 语句(仅数据,无模式)。
如果无法做到这一点,我对 SQL Server 无法处理这样一个基本场景感到震惊。我已经在 Firebird 和 Sqlite 上测试了这个等效的场景,它工作得很好!(它们是开源产品)。
注意:由于开头声明的变量在脚本末尾引用,因此无法分解脚本。
注意:在急于将其标记为“重复”之前,请注意其他类似线程并未解决特定问题“如何在 sql server 2008 中运行非常大的脚本”。