none
Insufficient memory available.. RRS feed

  • 问题

  • Windows 2003 
    SQL Server 2000 SP4        8.0.2055 

    在log中发现一些错误如下, 机器内存为 40G , 分配给SQL Server的为30G, 设置了AWE大内存 。 不知道
    是否设置AWE的问题 ?   查询了一下,  是  Bug #: 364188 (SHILOH_BUGS) ,  

    详见  http://support.microsoft.com/kb/815114      FIX: 额外的优化内存消耗量可能出现的具有多个 OUTER 联接的查询

    但是后面说明:     此问题最早在 Microsoft SQL Server 2000 Service Pack 4 中得到了解决。 我们的SQL Server2000已经是
    SP4     8.0.2055 了 , 怎么还会出这样的问题呢 ?   


    2009-07-30 14:51:21.96         spid102        Dynamic Memory Manager:  Stolen=133353 OS Reserved=1160 ...
    2009-07-30 14:51:21.96         spid102        Procedure Cache:  TotalProcs=59524 TotalPages=86713 InUsePages=40912
    2009-07-30 14:51:21.96         spid102        Buffer Counts:  Commited=3932160 Target=3932160 Hashed=3776911...
    2009-07-30 14:51:21.96         spid102        Buffer Distribution:  Stolen=46640 Free=21890 Procedures=86713...
    2009-07-30 14:51:21.95         spid131        Insufficient memory available..
    2009-07-30 14:51:21.95         spid131        Error: 17803, Severity: 20, State: 8
    2009-07-30 14:51:21.95         spid131        Query Memory Manager:  Grants=0 Waiting=0 Maximum=29647 Available=29647
    2009-07-30 14:51:21.95         spid131        Global Memory Objects:  Resource=2650 Locks=229 ...
    2009-07-30 14:51:21.95         spid131        Dynamic Memory Manager:  Stolen=133360 OS Reserved=1160 ...
    2009-07-30 14:51:21.95         spid131        Procedure Cache:  TotalProcs=59520 TotalPages=86713 InUsePages=40912
    2009-07-30 14:51:21.95         spid131        Buffer Counts:  Commited=3932160 Target=3932160 Hashed=3776911...
    2009-07-30 14:51:21.95         spid131        Buffer Distribution:  Stolen=46648 Free=21882 Procedures=86713...
    2009-07-30 14:51:21.87         spid133        Query Memory Manager:  Grants=0 Waiting=0 Maximum=29647 Available=29647
    2009-07-30 14:51:21.87         spid133        Global Memory Objects:  Resource=2656 Locks=229 ...
    2009-07-30 14:51:21.87         spid133        Dynamic Memory Manager:  Stolen=137409 OS Reserved=1160 ...
    2009-07-30 14:51:21.87         spid133        Procedure Cache:  TotalProcs=61063 TotalPages=90746 InUsePages=42484
    2009-07-30 14:51:21.87         spid133        Buffer Counts:  Commited=3932160 Target=3932160 Hashed=3776911...
    2009-07-30 14:51:21.87         spid133        Buffer Distribution:  Stolen=46675 Free=17822 Procedures=90746...


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.

    2012年3月12日 12:27

答案

全部回复

  • 请问怎么解决呢?

    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.

    2012年3月12日 12:28
  • 可能就是内存不够。有些操作太耗内存。比如建索引,hash join

    想不想时已是想,不如不想都不想。

    2012年3月12日 13:11
    版主
  • On sql2k, some processes need certain continuous amount of memory space. Have to free up memory (cleaning up cache, restarting sql, adding more memory, etc.) then try again. 
    2012年3月12日 13:38
  • SQL SERVER的内存有压力的时候应该是自动调控的,为什么内存不够的时候它不能及时释放Buffer pool中其他的内存呢?
    2012年3月12日 14:01
  • Depends on needing memory in which pool, sql2k is less flexible on that.
    2012年3月12日 14:11
  • Thanks

    2012年3月12日 14:19
  • 这是我执行dbcc memorystatus的结果

    dbcc memorystatus


    Buffer Distribution            Buffers     
    ------------------------------ -----------
    Stolen                         935
    Free                           2472026
    Procedures                     1608
    Inram                          0
    Dirty                          862
    Kept                           0
    I/O                            0
    Latched                        52
    Other                          2767397

    (9 row(s) affected)

    Buffer Counts                  Buffers     
    ------------------------------ -----------
    Commited                       5242880
    Target                         5242880
    Hashed                         2768311
    InternalReservation            231
    ExternalReservation            0
    Min Free                       768
    Visible                        138904

    (7 row(s) affected)

    Procedure Cache                Value      
    ------------------------------ -----------
    TotalProcs                     402
    TotalPages                     1608
    InUsePages                     440

    (3 row(s) affected)

    Dynamic Memory Manager         Buffers     
    ------------------------------ -----------
    Stolen                         2543
    OS Reserved                    928
    OS Committed                   906
    OS In Use                      899
    General                        1292
    QueryPlan                      1476
    Optimizer                      0
    Utilities                      7
    Connection                     168

    (9 row(s) affected)


    Global Memory Objects          Buffers     
    ------------------------------ -----------
    Resource                       931
    Locks                          340
    XDES                           72
    SQLCache                       88
    Replication                    2
    LockBytes                      2
    ServerGlobal                   20

    (7 row(s) affected)


    Query Memory Objects           Value      
    ------------------------------ -----------
    Grants                         0
    Waiting                        0
    Available (Buffers)            103146
    Maximum (Buffers)              103146

    (4 row(s) affected)

    Optimization Queue             Value      
    ------------------------------ -----------
    Optimizing                     0
    Waiting                        0
    Available                      96
    Maximum                        96

    (4 row(s) affected)


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.

    2012年3月13日 0:04
  • 是SQL OS对内存管理问题,跟物理内存不足无关。即使你把物理内存加到400G,也可能出现这个问题<当连续运行一阵子后>

    若可能,升级2008 64bit为正道


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2012年3月13日 1:14
  • Agree, free memory doesn't equal continuous free memory. In this case, sql2k was looking for certain amount of continuous free memory.  
    2012年3月13日 1:49
  • Thanks

    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.

    2012年3月13日 2:32