2
SQL Server不使用所有内存
我有SQL Server 2014,最大内存设置为6GB(物理内存为8GB)。 在目标服务器内存为6GB,有时,然后回落到总的服务器内存(约5.3GB,从未达到6GB)。我用committed_kb在sys.dm_os_sys_info检查SQL Server所使用的内存。 当我监视sys.dm_os_buffer_descriptors时,我看到页面已从缓存中删除-但仍然有700MB的内存。如果什么都不需要内存,您将如何解释从缓存中删除页面的事实?我希望SQL Server仅在需要内存时才删除页面。 在此服务器上,解除分配的临时表不是问题。我的PLE是3632。过程高速缓存是2182 MB。 我希望只有没有可用的内存时,页面才会被丢弃,但是我有700MB的可用空间,还是我误会了这一点? 有人可以尝试解释这种行为吗? SQL Server也在从磁盘读取数据,因此我想我可以得出结论,并非所有需要的页面都在内存中。 我进行了一些进一步的研究,并从磁盘将大量页面读取到内存中,并在读取过程中注意到taskmanager中的某些内容: 正在使用的内存从7.0GB-> 7.2GB-> 7.0GB-> 7.2GB-> ... Sqlservr.exe从5.3GB-> 5.5GB-> 5.3GB-> 5.5GB-> ... 就像Windows不允许sqlservr.exe增长到6GB一样。 我运行了Shanky提供的查询: select (physical_memory_in_use_kb/1024) Physical_Memory_usedby_Sqlserver_MB, (locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB, (Virtual_address_committed_kb/1024 )Total_Memory_in_MB,--RAM+ Pagefile process_physical_memory_low, process_virtual_memory_low from sys. dm_os_process_memory 得到以下结果: Physical_Memory_usedby_Sqlserver_MB: 5247 Locked_pages_used_Sqlserver_MB: 0 Total_Memory_in_MB: 5625 process_physical_memory_low: 0 process_virtual_memory_low: 0 …