环境:WIN2008 SP2 企业版,SQL2008标准版
      计算机是16G物理内存WIN2008安装后,系统显示已经认到16G的内存。
安装SQL2008,将‘AWE’选择为打开,最小内存设置为4096,最大内存设置为8000
在本地安全策略中,设置‘内存锁定用户’为system重启SQL,在‘任务管理器’中,看到进程中,sqlserver的用户是system,内存使用才为30多M。请问,我如何才能确定SQL使用了大内存呢?谢谢!

解决方案 »

  1.   


    SELECT awe_allocated_kb FROM sys.dm_os_memory_clerks
    WHERE type ='MEMORYCLERK_SQLBUFFERPOOL' awe_allocated_kb: The amount of memory allocated by the memory clerk by using AWE. In SQL Server, only buffer pool clerks (MEMORYCLERK_SQLBUFFERPOOL) use this mechanism, and only when AWE is enabled.
      

  2.   


    楼主,这是很正常的尽管你将最小内存设置为4096,但并不意味着SQL一启动就将4096全部使用,它是按需使用的;
    这个设置的效果是当使用的内存超过4096后,SQL将会保持内存不会再下降到4096以下。记得结贴哦。
      

  3.   

    --sql server 2008:
    select locked_page_allocations_kb  from sys.dm_os_process_memory
    Select sum(awe_allocated_kb)  as [AWE allocated, kb] From sys.dm_os_memory_clerks
      

  4.   

    打开了awe设过了就可以了你放心吧,内存肯定也已经锁定了.你不确定的话可以查看sp_configure
    内存你设定的是分配最大和最小是指操作系统给sqlserver保留的最大和最小的内存.那是指如果你的sqlserver有进一步的内存需要,他会向操作系统申请,然后windows会分配给他,但是你的sqlserver现在还用不了那么多,那他就不会提出申请,windows也不会给也没法给他那么多保留内存.你看到的300多m是现在用到的300多m,和前面保留的内存没什么联系顺便说一下,最好还是使用64位的系统