小编whd*_*whd的帖子

SQL Server 应该有多少内存

我有一个占用 500gb 的数据库,我注意到即使我有 100gb 的 RAM,我的 ple 也很低。我在谷歌中搜索过原因,我发现了一些有趣的查询。我有一个在非常大的表上运行的查询,即使它使用聚集索引,它也会导致 ple 删除。我在查询前后以及查询完成后检查了缓冲池中的内容,看起来 DB 必须为我的查询中使用的索引释放一些空间,并且在查询旧索引加载到缓冲池之后。我的问题是 DB 应该有多少 RAM 内存,我如何计算它,它是否应该是让我一次将所有使用的索引保存在内存中的数量?或者我应该减少保存在表中的数据,以便索引会更小?

performance sql-server memory page-life-expectancy

5
推荐指数
1
解决办法
2万
查看次数

在查询时删除 PLE

在公司中,我们正在从事非常大的数据库项目。它使用 100GB 内存。有什么奇怪的,第一次运行查询 PLE 之前是 11k~,运行后下降到大约 70,无论如何,15 分钟后我再次检查 PLE 大约 1k~,当我再次运行查询时它下降到 60。为什么会发生?如果在运行查询之间的时间 PLE 增加是否意味着所有需要的数据都在缓存中?如果是这样,为什么在 15 分钟后运行相同的查询会导致 PLE 再次下降?

这是查询:

select
    ResultType = case r.TypeID
        when 'dlp' then 'DLP'
        when 'bill' then 'BILL'
        when 'evtlog' then 'EVTLOG'
    end,
    SerialNumber, 
    ESerialNumber, 
    ResultDateTime, 
    DateTimeStamp as SavedInSystem
from 
    Results r
where
    TypeID in ('typeid1','typeid2')
    and DateTimeStamp > '2016-05-19 23:00:00'
    and SerialNumber in ('serialnumber')
Run Code Online (Sandbox Code Playgroud)

我有一个聚集索引的datetimestamp和非在群集typeid, datetimestampresultdatetime, resultid, typeid和其他几个... @Update

    select
(physical_memory_in_use_kb/1024)Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024 )Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
from sys. …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012 page-life-expectancy

3
推荐指数
1
解决办法
682
查看次数