是SQL SERVER 的日志中报的。抱错一段时间,页面就没有数据,维护人员重起系统。错误日志如下:
2005-08-27 21:03:19.44 server    错误: 17803,严重度: 20,状态: 14
2005-08-27 21:03:19.44 server    可用内存不够。。
2005-08-27 21:03:20.44 server    错误: 17803,严重度: 20,状态: 14
2005-08-27 21:03:20.44 server    可用内存不够。。
2005-08-27 21:03:21.38 spid1     LazyWriter: warning, no free buffers found.
2005-08-27 21:03:21.39 spid1     Buffer Distribution:  Stolen=208501 Free=0 Procedures=0
Inram=0 Dirty=8 Kept=0
I/O=0, Latched=27, Other=0
2005-08-27 21:03:21.39 spid1     Buffer Counts:  Commited=208536 Target=208536 Hashed=35
InternalReservation=337 ExternalReservation=0 Min Free=512
2005-08-27 21:03:21.39 spid1     Procedure Cache:  TotalProcs=0 TotalPages=0 InUsePages=0
2005-08-27 21:03:21.39 spid1     Dynamic Memory Manager:  Stolen=208501 OS Reserved=1376 
OS Committed=1355
OS In Use=1269
Query Plan=10 Optimizer=0
General=209101
Utilities=8 Connection=602
2005-08-27 21:03:21.39 spid1     Global Memory Objects:  Resource=1126 Locks=42 
SQLCache=67 Replication=2
LockBytes=2 ServerGlobal=43
Xact=16
2005-08-27 21:03:21.39 spid1     Query Memory Manager:  Grants=0 Waiting=0 Maximum=0 Available=0
2005-08-27 21:03:21.44 server    错误: 17803,严重度: 20,状态: 14
2005-08-27 21:03:21.44 server    可用内存不够。。
2005-08-27 21:03:22.44 server    错误: 17803,严重度: 20,状态: 14
2005-08-27 21:03:22.44 server    可用内存不够。。

解决方案 »

  1.   

    SQL SERVER 里面数据库不多,用户数据库就一个,其它全为系统数据库.
    用户访问量还是不大,估计并发10-30个,但是数据量比较大,都是历史数据趋势分析等.
      

  2.   

    打开windows2000任务管理器,查看下是什么进程占用内存多。
      

  3.   

    查过了,SQL SERVER 占用内存多!
      

  4.   

    SQLServer内存占用是最大占用机制的
    也就是系统空闲的内存越大,就可能战越多
    担当系统空闲内存较少时,SQLServer会释放相对占用的内存
    先把你的SqlServer内存占用最大值相对小一些看看
      

  5.   

    To  softj(天地客人<最近很迷茫>) 
     SQL 有SP4了?是不是真的?To lovcal(枫兮) 
     最大值变小了岂不是更容易内存用完了?
      

  6.   

    监视内存的使用
    定期监视 Microsoft&reg; SQL Server&#8482; 实例,确认内存的使用在正常范围内,并且没有进程(包括 SQL Server)缺少内存或消耗太多的内存。若要监视内存不足情况,可从下列对象计数器开始: Memory:Available Bytes
    Memory:Pages/sec 
    Available Bytes 计数器表示当前进程可使用的内存字节数。Pages/sec 计数器表示由于缺页处理而从磁盘取回的页数,或由于缺页处理而写入磁盘以释放工作集空间的页数。偏低的 Available Bytes 计数器值表示计算机从总体上短缺内存或一个应用程序没有释放内存。高比率的 Pages/sec 计数器值可能表示换页过度。监视 Memory:Page Faults/sec 计数器以保证磁盘活动不是由换页造成的。 换页率偏低(以及由此产生的换页错误)是正常的,即使计算机有大量的可用内存。Microsoft Windows NT&reg; 虚拟内存管理器 (VMM) 在调整 SQL Server 和其它进程的工作集大小时,会盗用这些进程的页,从而导致换页错误。若要确定是 SQL Server 而非其它进程导致过度换页,请监视 Process:Page Faults/sec 计数器。有关解决过多换页的更多信息,请参见 Windows NT 4.0 或 Microsoft Windows&reg; 2000 文档。隔离 SQL Server 所用的内存
    默认情况下,SQL Server 会依据可获得的系统资源动态改变它的内存需求。如果 SQL Server 需要更多的内存,它会要求操作系统确定是否有空闲的物理内存可用,并使用可用的内存。若 SQL Server 不再需要当前分配给它的内存,它就将内存释放给操作系统。不过,可以用 min server memory、max server memory 和 set working set size 服务器配置选项替代动态使用内存的选项。有关更多信息,请参见服务器内存选项。若要监视 SQL Server 正在使用的内存量,请检查下列性能计数器: Process:Working Set
    SQL Server:Buffer Manager:Buffer Cache Hit Ratio
    SQL Server:Buffer Manager: Total Pages
    SQL Server:Memory Manager:Total Server Memory (KB) 
    Working Set 计数器表示的是一个进程所占用的内存数量。若这一数值持续低于 SQL Server 配置使用的内存数量(由"最小服务器内存"和"最大服务器内存"服务器选项设置),则表示 SQL Server 所配置的内存比它所需要的多。否则,用"设置工作集大小"服务器选项修改工作集大小。有关更多信息,请参见 set working set size 选项。 Buffer Cache Hit Ratio 计数器值依应用程序而定,但比率最好为 90% 或更高。增加内存直到这一数值持续高于 90%,表示 90% 以上的数据请求可以从数据缓冲区中获得所需数据。若 Total Server Memory (KB) 计数器值与计算机的物理内存大小相比一直很高,可能表示需要更多的内存。
      

  7.   

    BUG: DBCC SHRINKDATABASE Causes Memory Leak and Error 17803 When AUTO_SHRINK Is Set
    http://support.microsoft.com/default.aspx?scid=kb;en-us;289290BUG: SELECT INTO with Fixed Memory May Cause Errors 802 and 17803
    http://support.microsoft.com/default.aspx?scid=kb;en-us;197299FIX: SQLTrace May Cause Error 17803 on a Server
    http://support.microsoft.com/default.aspx?scid=kb;en-us;162033FIX: When you use Transact-SQL cursor variables to perform operations that have large iterations, memory leaks may occur in SQL Server 2000
    http://support.microsoft.com/default.aspx?scid=kb;en-us;837957