執行一套查詢來填入快取

為了讓可能的快取命中最大化,其中一個策略就是執行一套查詢來填入快取。

下列是建立一套查詢來原始內建快取時,所要使用之查詢類型的一些建議。

  • 一般的預先建立查詢。 一般執行的查詢 (特別是在處理上很耗費資源的查詢) 是絕佳的快取原始內建查詢。結果內嵌在儀表板中的查詢即是一般查詢的好例子。

  • 不含表示式的 SELECT 清單。 去除 SELECT 清單資料欄的表示式可提升快取命中率。含表示式的已快取資料欄只能回答含相同表示式的新查詢;不含表示式的已快取資料欄則可回答針對該資料欄且含任何表示式的要求。例如,如下方的已快取要求:

    SELECT QUANTITY, REVENUE...
    

    可以回答如下方的新查詢:

    SELECT QUANTITY/REVENUE... 
    

    但無法反向操作。

  • 無 WHERE 子句。 快取的結果中如果沒有 WHERE 子句,只要針對具有包含輸出清單中資料欄之任何 WHERE 子句的 SELECT 清單,查詢能夠滿足其快取命中規則,該快取的結果便可用來回答這些查詢。

通常,用以原始內建快取的最佳查詢,是大量耗用資料庫處理資源且可能需要重新發出的查詢。請小心,不要使用會傳回很多資料列的簡單查詢來原始內建快取。這些查詢 (例如 SELECT * FROM PRODUCTS,其中 PRODUCTS 會直接對應至單一資料庫表格) 所需的資料庫處理非常少。其增加的是網路與磁碟負荷,這些不是快取所能改善的因素。

當 Oracle Analytics Cloud 重新整理語意模型變數時,它會檢查業務模型以判斷它們是否參照這些語意模型變數。如果有參照,Oracle Analytics Cloud 就會將這些業務模型的所有快取永久清除。請參閱語意模型變更對查詢快取有何影響