【问题标题】:Insufficient system memory in resource pool to execute SQL Scripts in SQL Server 2008资源池中的系统内存不足,无法在 SQL Server 2008 中执行 SQL 脚本
【发布时间】:2009-09-10 08:45:25
【问题描述】:

我有一个用 C#.Net 2005 开发的工具,它将通过执行 SQL 脚本来创建数据库;脚本正在批量运行。

在 XP 中运行时运行良好;但是当它在 Windows Vista 32 位操作系统中运行时问题就开始了。使用 SQR Server 2008 Express;我在日志文件中记录错误;以下是脚本文件大小的日志。

我不明白为什么可用于执行脚本的内存更少,早些时候我遇到了这个问题并将 Master_Meata_Data 分成两个文件(Master_Data_Metadata1 和 Master_Data_Metadata2);我仍然在 Vista 中面临同样的问题。

08/28/2009 在 DB 进度启动中: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(大小 999KB)

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

ReadAndExecuteScript: C:\Program Files\CreateNewDB\Master_Data_Metadata1.sql(大小 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(大小 2KB)

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

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

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

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

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

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

    这些脚本中有GO 语句吗?如果不是,那可能就是导致失败的原因。对于尚未分批的 SQL 脚本来说,超过 1 MB 是相当大的。要么在其中添加一些 GO 语句,要么(更好)将其拆分为更小的脚本。

    【讨论】:

      【解决方案2】:

      很可能您只是用完了物理内存,但如果我没有并且启用了资源管理器,请尝试使用

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 2016-12-31
        • 2014-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多