none
SQL2005内存问题 RRS feed

  • 问题

  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢
    2009年11月6日 8:51

答案

  • sp_configure 'min server memory', 1024
    RECONFIGURE
    GO
    sp_configure 'max server memory', 6144
    RECONFIGURE
    GO

    这个可能需要打开awe开关。

    你将最小内存设置大一些,就可以使sql server使用较多内存了。

    family as water
    2009年11月6日 9:43
  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢

    这个是准的, 32系统系统通过任务管理器看到的内存可能不太准
    在64位的环境下是很准确的, 测试过几次, 当 sql server 确实占用了 max memory 分配的内存的时候, 将 max memory 设置小一些, 可以直接在任务管理器里面看到内存使用降下来的
    2009年11月7日 4:06
  • KB上说得比较清楚:http://support.microsoft.com/kb/907877

    简单来说:Free 表示在SQL commited内存中还有多少buffer是free的。free增大了有很多种可能:可能是SQL Server commited的内存增加了,也可能是其他的buffer释放了,cached是指各种cache用的buffer,比如查询计划。stolen的buffer是供SQL Server内部的一些数据结构用的区域,不同于数据缓存和查询计划等缓存。
    This posting is provided "AS IS" with no warranties, and confers no rights.
    2009年11月10日 9:01
  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢

    可以用min server memory and max server memory 来设置sql server使用的最多和最少内存。不过max server memory只是代表最多使用的buffer的大小。虽然部分bufer占了SQL Server 使用内存的绝大部分,但是SQL Server作为一个进程还会使用稍微多一点的内存。
    This posting is provided "AS IS" with no warranties, and confers no rights.
    2009年11月10日 9:07

全部回复

  • sp_configure 'min server memory', 1024
    RECONFIGURE
    GO
    sp_configure 'max server memory', 6144
    RECONFIGURE
    GO

    这个可能需要打开awe开关。

    你将最小内存设置大一些,就可以使sql server使用较多内存了。

    family as water
    2009年11月6日 9:43
  • 用64位的比较好
    2009年11月6日 10:02
  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢
    Books online has details.
    2009年11月6日 14:11
  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢

    这个是准的, 32系统系统通过任务管理器看到的内存可能不太准
    在64位的环境下是很准确的, 测试过几次, 当 sql server 确实占用了 max memory 分配的内存的时候, 将 max memory 设置小一些, 可以直接在任务管理器里面看到内存使用降下来的
    2009年11月7日 4:06
  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢

    'max server memory' 选项决定了sql server buffer pool可以占用的最大内存量
    sqlserver会根据需求来增加使用的内存大小,如果想让sqlserver使用多的内存,增加负载就好了。


    内存报表是什么意思? 是dbcc memorystatus的输出吗?
    kb上有介绍
    http://support.microsoft.com/kb/271624/en-us

    有dba的职位吗
    2009年11月7日 15:53
    版主
  • KB上说得比较清楚:http://support.microsoft.com/kb/907877

    简单来说:Free 表示在SQL commited内存中还有多少buffer是free的。free增大了有很多种可能:可能是SQL Server commited的内存增加了,也可能是其他的buffer释放了,cached是指各种cache用的buffer,比如查询计划。stolen的buffer是供SQL Server内部的一些数据结构用的区域,不同于数据缓存和查询计划等缓存。
    This posting is provided "AS IS" with no warranties, and confers no rights.
    2009年11月10日 9:01
  • SQL2005的内存不像2000可以强行限制大小,就是设定了,我在网上看到也没有用的,请问有什么方法可以强行限制SQL2005对于服务器内存使用的最大值,另外,SQL2005里面内存报表里的FREE是什么意思?当在拉数据的时候FREE反而大了,看不懂,还有像CACHED和STOLEN是什么意思?麻烦各位高手给一个详细的说明,谢谢

    可以用min server memory and max server memory 来设置sql server使用的最多和最少内存。不过max server memory只是代表最多使用的buffer的大小。虽然部分bufer占了SQL Server 使用内存的绝大部分,但是SQL Server作为一个进程还会使用稍微多一点的内存。
    This posting is provided "AS IS" with no warranties, and confers no rights.
    2009年11月10日 9:07