2016-09-14 86 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

這將節省您的一天。

相關問題