2016-09-14 117 views
0

我正在使用SQL Server 2012,我有一个脚本来更新数据库,该脚本的大小约为270 MB,并且包含大约22,00,000行。在SQL Server 2012上运行270 MB脚本时出现内存不足错误

错误:

enter image description here

错误消息:的System.OutOfMemoryException

此外,

我试图Transact-SQL命令查询的方法,但在特定的行其给出错误消息。

Sqlcmd:错误:文件'database.sql'中第709918行的语法错误。

但是没有语法错误。

请提供任何解决方案。

+1

获取更多/分配更多内存?将脚本简化成多个更小的步骤? –

+0

你可以从命令行运行脚本吗?不是在管理工作室,谷歌SQL运行脚本命令行 - 等 - 抱歉,你试过,并得到语法错误 - 是否真的没有语法错误? – Cato

+0

[您如何导入大型MS SQL .sql文件?](http://stackoverflow.com/questions/431913/how-do-you-import-a-large-ms-sql-sql-file ) – mxix

回答

1

对于SQL Management Studio来说这已经相当大了,特别是如果脚本包含长行和任何太复杂的话。

你最好的选择可能是:

  • 使用sqlcmd不是SQL Management Studio中
  • 打破脚本分解成多个文件,你可以陆续

执行一个不要忘了,即使只是文件,您至少需要550MB的内存,因为Management Studio是一个.NET应用程序并使用Unicode。然后是图形用户界面,语法分析和解析......而且由于脚本不是通过SMSS流式传输,与SqlCmd不同,您可能会将整个文件存储在内存中至少两次,并且您已经接近到32位应用程序的限制,尤其是在32位操作系统上...

0

否需要执行任何手动分割或任何命令行执行。

只要下载这个软件 - Big SQL Script File Runner

这将节省您的一天。

相关问题