Quando l'inserimento nella cache è abilitato, ogni query viene valutata per determinare se è idonea per l'accesso alla cache.
Con l'espressione accesso alla cache si indica che Oracle Analytics Cloud è stato in grado di utilizzare la cache per rispondere alla query senza ricorrere affatto al database. Oracle Analytics Cloud può utilizzare la cache delle query per rispondere alle query allo stesso livello di aggregazione o a un livello di aggregazione più elevato.
L'accesso alla cache è determinato da vari fattori. Questi fattori sono descritti nella tabella riportata di seguito.
| Fattore o regola | Descrizione |
|---|---|
|
Un subset di colonne nella lista |
Tutte le colonne nella lista Questa regola descrive il requisito minimo per accedere alla cache, ma soddisfarla non garantisce che l'accesso alla cache si verifichi. Vengono applicate anche le altre regole elencate in questa tabella. |
|
Le colonne nella lista |
Oracle Analytics Cloud è in grado di calcolare le espressioni dei risultati inseriti nella cache per rispondere alla nuova query, ma tutte le colonne devono trovarsi nel risultato inserito nella cache. Ad esempio, la query: SELECT product, month, averageprice FROM sales WHERE year = 2000 accede alla cache nella query: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 perché |
|
La clausola |
Affinché la query venga ritenuta idonea per l'accesso alla cache, i vincoli della clausola Una clausola
Inoltre, le colonne utilizzate nella clausola SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
non comporta un accesso alla cache per la query di popolamento nella lista precedente perché REGION non si trova nella lista di proiezione. |
|
Le query solo dimensioni devono costituire una corrispondenza esatta |
Se una query è del tipo solo dimensioni, ovvero è priva di fact o misure incluse, solo una corrispondenza esatta delle colonne di proiezione della query inserita nella cache comporta l'accesso alla cache. Questo funzionamento impedisce i falsi positivi in presenza di più origini logiche per una tabella dimensione. |
|
Le query con funzioni speciali devono costituire una corrispondenza esatta |
Anche le altre query che contengono funzioni speciali, quali ad esempio funzioni di serie temporali ( |
|
Il set di tabelle logiche deve corrispondere |
Per essere considerate idonee per l'accesso alla cache, tutte le query in entrata devono avere lo stesso set di tabelle logiche come voce della cache. Questa regola evita che si verifichino falsi accessi alla cache. Ad esempio, |
|
I valori delle variabili di sessione, comprese le variabili di sessione inerenti alla sicurezza, devono corrispondere |
Se l'istruzione SQL logico o SQL fisico fa riferimento a una variabile di sessione qualsiasi, i valori delle variabili di sessione devono corrispondere. In caso contrario, l'accesso alla cache non si verifica. Inoltre, il valore delle variabili di sessione sensibili alla sicurezza deve corrispondere ai valori delle variabili della sessione di sicurezza definiti nel modello semantico, anche se l'istruzione SQL logica non fa riferimento alle variabili di sessione. Vedere Garantire risultati cache corretti quando si usa la sicurezza database a livello di riga. |
|
Condizioni di join equivalenti |
La tabella logica unita tramite join risultante di una nuova richiesta di query deve essere uguale ai risultati inseriti nella cache, o a un subset di tali risultati, per essere idonea per l'accesso alla cache. |
|
L'attributo |
Se una query inserita nella cache elimina i record duplicati con l'elaborazione |
|
Le query devono contenere livelli di aggregazione compatibili |
Le query che richiedono un livello di informazioni aggregato possono utilizzare i risultati inseriti nella cache a un livello di aggregazione inferiore. La query seguente, ad esempio, richiede la quantità venduta a livello di fornitore, area e città: SELECT supplier, region, city, qtysold FROM suppliercity La query seguente richiede la quantità venduta a livello di città: SELECT city, qtysold FROM suppliercity La seconda query ha come risultato l'accesso alla cache sulla prima query. |
|
Aggregazione aggiuntiva limitata |
Ad esempio, se una query con la colonna |
|
La clausola |
Le query ordinate in base a colonne non contenute nella lista SELECT hanno come risultato un accesso alla cache non riuscito. |
|
Diagnosi del funzionamento degli accessi alla cache |
Per valutare meglio il funzionamento degli accessi alla cache, impostare su 4 la variabile di sessione ENABLE_CACHE_DIAGNOSTICS, come mostrato nell'esempio seguente: ENABLE_CACHE_DIAGNOSTICS=4 |