资源池中的系统内存不足,无法在SQL Server 2008中执行SQL脚本

时间:2009-09-10 08:45:25

标签: sql-server-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中遇到同样的问题。

  

08/28/2009在数据库进度启动时:Local \ 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(Size   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 ReadAndExecuteScript:C:\ Program   Files \ CreateNewDB \ Data_Metadata2.sql(大小1.55MB)    2009年8月28日星期五ReadAndExecuteScript中的SQL错误:资源池“内部”中没有足够的系统内存来运行此   查询。

     

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

     

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB \ Views1.sql(Size   2KB)

     

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB \ Views2.sql(Size   4KB)

     

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB \ Views3.sql(Size   2KB)

     

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB \ Fn_Duration.sql   (大小2.27KB)

     

ReadAndExecuteScript:C:\ Program Files \ CreateNewDB_Fn_GetDate.sql   (大小1KB)

2 个答案:

答案 0 :(得分:2)

我无法回答为什么它在XP而不是Vista中工作的问题,但是当您看到与非常大的脚本相关联的错误消息时,通常意味着查询批处理对于解析器来说太大了来处理。

这些脚本中是否有GO个语句?如果没有,那可能是造成失败的原因。对于尚未拆分为批量的SQL脚本,超过1 MB是相当大的。要么在其中放置一些GO语句,要么(更好的是)将其拆分为更小的脚本。

答案 1 :(得分: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

相关问题