运行一组查询来填充高速缓存

要尽可能增加高速缓存命中,一个策略是运行一组查询来填充高速缓存。

以下是有关在创建一组用于植入高速缓存的查询时要使用的查询类型的一些建议。

  • 常用预构建查询。 通常运行的查询(尤其是处理成本较高的查询)是非常好的高速缓存植入查询。例如,其结果嵌入仪表盘的查询是很好的常用查询。

  • 无表达式的 SELECT 列表。 清除 SELECT 列表列中的表达式可增加高速缓存命中的可能性。含表达式的高速缓存列只能应答使用相同表达式的新查询;不含表达式的高速缓存列可以应答使用任何表达式针对该列发出的请求。例如,下面这种高速缓存请求:

    SELECT QUANTITY, REVENUE...
    

    可以应答下面这种新查询:

    SELECT QUANTITY/REVENUE... 
    

    但相反则不行。

  • 无 WHERE 子句。 如果高速缓存结果中没有 WHERE 子句,则可以使用它来应答符合含任何 WHERE 子句(包含投影列表中的列)的 select 列表的高速缓存命中规则的查询。

通常,最适合用来植入高速缓存的查询是大量使用数据库处理资源以及可能要重新发出的查询。注意不要使用返回许多行的简单查询来植入高速缓存。这些查询(例如 SELECT * FROM PRODUCTS,其中 PRODUCTS 直接映射到单个数据库表)需要的数据库处理非常少。它们的费用是网络和磁盘开销,而高速缓存无法降低这些开销。

Oracle Analytics Cloud 刷新语义模型变量时,将会检查业务模型以确定其是否引用这些语义模型变量。如果引用,Oracle Analytics Cloud 会为这些业务模型清除所有高速缓存。请参见语义模型更改如何影响查询高速缓存