你的机器是64位的,为什么还需要用awe中的内存呢?一般只有在系统是32位的情况下,才会开启awe,来让sql server使用更多的内存

解决方案 »

  1.   

    楼主用的什么版本的sql server?
    http://technet.microsoft.com/en-us/library/ms175019(v=sql.105).aspx对于sql server 2012
    awe_allocated_kb:
    Specifies the amount of memory in kilobytes (KB) locked in the physical memory and not paged out by the operating system. Is not nullable.我的理解,这个已经不是指awe了。在2012中
      

  2.   

    查一下你的数据库是否启用了Lock Pages In Memory的功能,可能跟这个有关。 
      

  3.   

    AWE在32跟64位下有不同的用处,
    在32下AWE通过PAE是利用超过4G地址空间的那部分内存。
    而在64位上,AWE的作用是锁定分配的内存,使之不paged。
    设置一个maximum memory吧,
    不过maximum memory设置为多少才算合适呢?
    没有一个具体的计算公式,要根据通过一些performance counter来判断了。
      

  4.   

    "64 位操作系统上不需要 AWE,也不能在该系统上配置 AWE。"
    http://technet.microsoft.com/zh-cn/library/ms190731%28v=sql.105%29.aspx上面MSDN上的那句话,慢容易误导人的,准确一点的说法是:64 位操作系统上不需要 AWE来访问超过4G地址空间的那部分地址,但是需要AWE API来分配locked page。 
      

  5.   

     我的服务器版本:windows server 2003 R2 Enterprise x64 Edition ,数据库是08 R2的版本,没有启用Lock Pages In Memory ,也没有启用AWE 
      

  6.   


    按照楼上说的,可能是通过awe来把页锁定在内存吧,也就是awe显示的是锁定在内存中的页。
      

  7.   

    这个问题我自己已经琢磨清楚了。
    1,实际上这个问题是由sql server独特的内存申请和管理机制导致的,因为我的服务器内存特别充足,所以在没有设置sql server max server memory的前提下sql server的memory clerk会尽可能多的申请系统的内存,用来缓存其database cache等信息,所以到致PF居高不下。
    2,AWE并不是32位系统的专利,实际上AWE在64位系统上的效果比32位更好,只不过64位系统不需要这么做,因为直接买内存插上就可以了,系统就能访问到。
    3,设置lock pages in memory权限,能有效防止其他应用程序抢夺sql server的内存资源,但是不能阻止windows系统收回sql  server的内存资源,即:即使设置了lock pages in memory,windows也是可以拿走的。