主动缓存为 OLAP 对象提供自动 MOLAP 缓存创建和管理。 多维数据集会根据从数据库中收到的通知立即合并对数据库中数据所做的更改。 主动缓存的目标是提供传统 MOLAP 的性能,同时保留 ROLAP 提供的即时性和易于管理。
简单 ProactiveCaching 对象由:计时规范和表通知组成。 计时规范定义在收到更改通知后更新缓存的时间范围。 表通知定义数据表和 ProactiveCaching 对象之间的通知架构。
多维 OLAP (MOLAP) 存储提供最佳查询响应,但会降低某些数据延迟。 实时关系 OLAP (ROLAP) 存储允许用户立即浏览数据源中的最新更改,但由于缺少预先计算的数据摘要,并且关系存储未针对 OLAP 样式查询进行优化,性能明显低于多维 OLAP(MOLAP)存储。 如果你有用户需要查看最近数据的应用程序,并且还希望 MOLAP 存储的性能优势,SQL Server Analysis Services 提供了主动缓存选项来解决此方案,特别是与分区的使用结合使用。 主动缓存基于每个分区和每个维度进行设置。 主动缓存选项可以在 MOLAP 存储的增强性能与 ROLAP 存储的即时性之间提供平衡,并在基础数据更改或按设定的计划提供自动分区处理。
主动缓存配置选项
SQL Server Analysis Services 提供了多个主动缓存配置选项,使你能够最大程度地提高性能、最大程度地减少延迟和计划处理。 主动缓存功能简化了管理数据过时的过程。 主动缓存设置确定重新生成多维 OLAP 结构(也称为 MOLAP 缓存)的频率、在重新生成缓存时查询过时的 MOLAP 存储还是基础 ROLAP 数据源,以及缓存是按计划还是基于数据库中的更改重新生成。
最小化延迟
在将主动缓存设置为最小化延迟的情况下,针对 OLAP 对象的用户查询针对 ROLAP 存储或 MOLAP 存储进行,具体取决于数据的最新更改以及主动缓存的配置方式。 查询引擎将针对 MOLAP 存储中的源数据进行查询,直到数据源中发生更改。 为了尽量减少延迟,在数据源中发生更改后,可以删除缓存的 MOLAP 对象,并在缓存中重新生成 MOLAP 对象时查询切换到 ROLAP 存储。 重新生成和处理 MOLAP 对象后,查询会自动切换到 MOLAP 存储。 对于小型分区(例如当前分区),缓存刷新可能非常快,这可以和当前日期一样小。
最大化性能
为了最大程度地提高性能,同时降低延迟,还可以使用缓存,而无需删除当前的 MOLAP 对象。 然后在新缓存中读取和处理数据时继续对 MOLAP 对象执行查询。 此方法提供更好的性能,但在生成新缓存时,可能会导致查询返回旧数据。