我正在使用SSAS报告大量数据的统计数据。
最近,我开始学习调优的最佳实践,我对SSAS如何缓存数据很感兴趣。
我已经做了我的研究,我的结论是,SSAS使用了三种类型的缓存,以避免直接的磁盘IO攻击。
因此,问题是,当进行冷查询时,这三个级别是否都会存储一些数据?如果正在发生这种情况,那么是否有可能在不同的级别缓存相同的数据?如果是的话,为什么会有如此高的缓存使用率,因为这可能会消耗几乎整个RAM?
例如,FE缓存是否可能存储一些单元格集或行集数据,同时SE缓存存储单元或行集数据的某些子部分,同时OS缓存存储一些数据?
发布于 2017-01-05 10:23:22
是的,碰巧所有三个层都在缓存相同的数据。
您不应该担心SSAS消耗了所有的内存,因为它是可以使用的。Server数据库引擎也做了同样的事情。
如果SSAS遇到内存压力,它会自动管理自己的缓存,根据需要从前端和存储引擎缓存中删除条目。如果在同一台主机上运行了其他一些服务来争夺内存,那么您可能希望通过更改其记忆特性设置来限制SSAS中的内存使用。
您所指的操作系统缓存是文件系统缓存。Windows在内存压力下也会自动管理它。在任务管理器中,大多数“缓存”图形都是由文件系统缓存造成的。您可以使用Sysinternals‘’RAMMap实用工具及其空待机列表选项退出文件系统缓存。
Chris写了几篇关于SSAS缓存升温的博客文章,你可能会发现这很有趣。这些帖子是从2009年开始的,但细节仍然适用于SSAS多维版本的更新版本。
https://dba.stackexchange.com/questions/155028
复制相似问题