2009-09-10 113 views
0

問候朋友沒有足夠的系統內存來在SQL Server中執行SQL腳本2008

我現在面臨一個問題,我有已在C#.NET 2005開發了一個工具,它會通過執行SQL創建數據庫腳本;腳本正在批量運行。

當在XP中運行它工作正常;但在Windows Vista 32位O.S.中運行時出現問題。使用SQR Server 2008 Express;我將錯誤記錄在日誌文件中;以下是腳本文件大小的日誌。

我不明白爲什麼有更少的內存可用於執行腳本,早些時候我遇到過這種情況,並將Master_Meata_Data分解爲兩個文件(Master_Data_Metadata1和Master_Data_Metadata2);還是我面臨在Vista中同樣的問題...

2009年8月28日在DB進度開始:本地\ SQLEXPRESS:WINDOWS :: 1031:NEWDB bgWorkerCreateDB_DoWork:C:\ Program Files文件\ CreateNewDB \

ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Drop_Create.sql(尺寸3KB)

ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Tables.sql(大小999KB)

ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Master_Data.sql(Sizr 649KB)

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB \ Master_Data_Metadata1.sql(Size 2.72MB) 2009年8月28日星期五ReadAndExecuteScript中的SQL錯誤:「內部」資源池中沒有足夠的系統內存來運行此查詢。

週五,2009年8月28日5:10 PM ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Data_Metadata2.sql(大小1.55MB) 週五,2009年8月28日SQL錯誤ReadAndExecuteScript:有「內部」資源池中的系統內存不足以運行此查詢。

ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Initialize_Data.sql(大小14.3MB)

ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Views1.sql(大小2KB)

ReadAndExecuteScript :C:\ Program Files文件\ CreateNewDB \ Views2.sql(容量4KB)

ReadAndExecuteScript:C:\ Program Files文件\ CreateNewDB \ Views3.sql(大小2KB)

ReadAndExecuteScript:C:\臨gram Files \ CreateNewDB \ Fn_Duration.sql(Size 2.27KB)

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB_Fn_GetDate。SQL(大小1KB)

問候

+2

「管理員標誌」用於管理支持,而不是答案。 – 2009-09-14 08:14:55

回答

0

最有可能你只是運行的物理內存不足,但如果我你是不是和啓用的資源州長嘗試使用

ALTER RESOURCE GOVERNOR 
    { DISABLE | RECONFIGURE } 
| 
     WITH (CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }) 
| 
    RESET STATISTICS 
[ ; ] 

ALTER WORKLOAD GROUP { group_name | "default" } 
[ WITH 
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ] 
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ] 
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ] 
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ] 
      [ [ , ] MAX_DOP = value ] 
      [ [ , ] GROUP_MAX_REQUESTS = value ]) 
] 
[ USING { pool_name | "default" } ] 
[ ; ] 

更改可用於執行查詢的內存量。

MSDN Page for ALTER RESOURCE GOVERNOR

MSDN page for ALTER WORKLOAD GROUP

2

我不能回答,爲什麼它在XP和Vista中沒有,但是當你看到一個非常大的腳本相關聯的錯誤信息,這通常意味着問題的對於解析器來處理,查詢批次太大。

這些腳本中是否有GO聲明?如果不是,那可能是導致失敗的原因。對於尚未拆分成批次的SQL腳本,超過1 MB是相當大的。將一些GO語句放在那裏,或者(更好的是)將它分成更小的腳本。

相關問題