我有一个.sql
文件的文件,大约有22,000行。它是由其他东西生成的,但基本上每行只包含一个更新语句。
我在SQL Server Management Studio中运行该文件时出现此错误。
资源池“内部”的系统内存不足 运行此查询
我想我只需要拆分这个查询文件,但我不确定最好的方法。我可以把文件切成2000行的块或者我想的东西。
这似乎是一个简单的问题,我会经常这样做,我想提出一个很好的解决方案。有什么想法吗?
答案 0 :(得分:5)
您可能希望通过SQLCMD来查看运行脚本,而不是通过SSMS GUI界面。
答案 1 :(得分:4)
我在SQL Management studio上运行时遇到了同样的问题,我所做的是在命令行中执行它osql -S localhost -d mydb -E -i。\ hugescript.sql
http://tutewall.com/cannot-execute-script-insufficient-memory-error-sql-server/
答案 2 :(得分:3)
您可能对批量大小设置了限制,因此SQL Server在解析批处理时遇到问题。如果你可以运行大约~5000行的块(突出显示,执行)那么这就证实了我的理论。
一旦知道正确的批量大小,您可以:
答案 3 :(得分:3)
我遇到了类似的问题,并在命令提示符下运行blog以下的命令保存了我。
sqlcmd -S YOURSQLSERVER\INSTANCENAME -i "C:\Your Script.sql"
答案 4 :(得分:0)
使用此解决方案,您可以为服务器分配更多内存:
默认最大值为2147483647,我将其更改为9147483647,问题解决了。