已啟用快取功能時,系統會評估每個查詢以判斷它是否符合快取命中資格。
快取命中意謂著 Oracle Analytics Cloud 能夠使用快取來回答查詢,而完全不用前往資料庫。Oracle Analytics Cloud 可以使用查詢快取來回答相同或更高聚總層級的查詢。
有許多因素可決定快取是否為命中。下表描述這些因素。
| 因素或規則 | 描述 |
|---|---|
|
|
新查詢之 此規則描述命中快取的最低需求,但符合此規則並不保證就是快取命中。此表格中所列的其他規則也適用。 |
|
|
Oracle Analytics Cloud 可以計算所快取結果的表示式來回答新查詢,但所有資料欄都必須在所快取的結果中。例如,查詢: SELECT product, month, averageprice FROM sales WHERE year = 2000 會命中以下查詢的快取: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 因為可從 |
|
|
若要讓查詢符合快取命中資格,
此外, SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
不會產生先前清單中原始內建查詢的快取命中,因為 REGION 不在輸出清單上。 |
|
僅限維度的查詢必須為完全相符 |
如果查詢僅限維度 (亦即查詢中不包含任何事實或計量),則只有與所快取查詢之輸出資料欄完全相符時,才表示命中快取。此行為可防止在維度表格有多個邏輯來源時出現假陽性的情況。 |
|
含特殊函數的查詢必須為完全相符 |
其他包含時間序列函數 ( |
|
邏輯表格集必須相符 |
若要符合快取命中資格,所有內送查詢都必須有相同的邏輯表格集作為快取項目。此規則可避免假快取命中。例如 |
|
階段作業變數值必須相符,包括安全階段作業變數 |
如果邏輯 SQL 或實體 SQL 敘述句參照任何階段作業變數,則階段作業變數值必須相符。否則就不會命中快取。 此外,階段作業變數若具安全機密性,其值就必須與語意模型中所定義的安全階段作業變數值相符,即使邏輯 SQL 敘述句本身並未參照階段作業變數。請參閱使用資料列層級資料庫安全性時確保快取結果正確。 |
|
相等結合條件 |
新查詢要求的結果結合邏輯表格必須與快取的結果相同 (或為其子集),才符合快取命中資格。 |
|
|
如果快取的查詢藉由 |
|
查詢必須包含相容的聚總層級 |
查詢若是要求聚總層級的資訊,便可使用較低聚總層級的快取結果。例如,下列查詢要求的是供應商、區域及縣/市層級的銷售數量: SELECT supplier, region, city, qtysold FROM suppliercity 下列查詢要求的是縣/市層級的銷售數量: SELECT city, qtysold FROM suppliercity 第二個查詢會命中第一個查詢的快取。 |
|
有限的額外聚總 |
例如,如果快取的是含 |
|
|
查詢的排序依據資料欄若未包含在 select 清單中,就會導致快取未命中。 |
|
診斷快取命中行為 |
為了能夠更好地評定快取命中行為,請將 ENABLE_CACHE_DIAGNOSTICS 階段作業變數設為 4,如下列範例所示: ENABLE_CACHE_DIAGNOSTICS=4 |