Atunci când este activată plasarea în memoria cache, fiecare interogare este evaluată pt. a stabili dacă se califică pt. o reuşită cache.
O reuşită cache înseamnă că Oracle Analytics Cloud a putut folosi memoria cache pt. a răspunde la interogare şi că nu a accesat deloc baza de date. Oracle Analytics Cloud poate folosi cache-ul de interogării pt. a răspunde la interogări la acelaşi nivel de agregare sau la un nivel superior.
Sunt mulţi factori care determină existenţa unei reuşite cache. Tabelul de mai jos descrie aceşti factori.
| Factor sau regulă | Descriere |
|---|---|
|
Trebuie să se potrivească un subset de coloane din lista |
Toate coloanele din lista Această regulă descrie cerinţa minimă pentru o reuşită cache, dar respectarea acestei reguli nu garantează o reuşită cache. Se aplică şi celelalte reguli listate în acest tabel. |
|
Coloanele din lista |
Oracle Analytics Cloud poate calcula expresii pe rezultatele din memoria cache pt. a răspunde la noua interogare, dar în rezultatul din memoria cache trebuie să existe toate coloanele. De exemplu, interogarea: SELECT product, month, averageprice FROM sales WHERE year = 2000 are rezultate cache pe interogarea: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 deoarece |
|
clauza |
Pentru ca interogarea să se califice drept o reuşită cache, constrângerile clauzei O clauză
În plus, coloanele folosite pe clauza SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Nu are drept rezultat o reuşită cache pt. interogarea de bază din lista precedentă, deoarece REGION nu se află pe lista de proiecţii. |
|
Interogările doar cu dimensiune trebuie să fie o corespondenţă exactă |
Dacă o interogare este doar cu dimensiune, adică în interogare nu este inclus niciun fapt şi nicio măsură, atunci doar o corespondenţă exactă a coloanelor de proiecţie ale interogării din memoria cache reuşeşte în cache. Acest comportament previne apariţia falselor pozitive atunci când există mai multe surse logice pt. un tabel de dimensiuni. |
|
Interogările cu funcţii speciale trebuie să fie corespondenţe exacte |
Alte interogări care conţin funcţii speciale, precum funcţii de serii de timp ( |
|
Seturile de tabele logice trebuie să corespundă |
Pentru a se califica drept reuşite cache, toate interogările de intrare trebuie să aibă acelaşi set de tabele logice ca şi intrarea din memoria cache. Această regulă evită reuşitele cache false. De exemplu, |
|
Valorile de variabile de sesiune trebuie să corespundă, inclusiv variabilele sesiunii de securitate |
Dacă declaraţia SQL logică sau cea SQL fizică face referire la orice variabilă de sesiune, atunci valorile variabile de sesiune trebuie să corespundă. Altfel, nu este o reuşită cache. În plus, valoarea variabilelor de sesiune ce ţin cont de securitate trebuie să corespundă cu valorile variabilelor de securitate a sesiunii, definite în modelul semantic, chiar dacă instrucţiunea logică SQL în sine nu face referire la variabilele de sesiune. Consultaţi Asigurarea unor rezultate corecte în memoria cache, atunci când se utilizează securitatea bazei de date la nivel de rând. |
|
Condiţii de reunire echivalente |
Tabelul logic reunit rezultat al unei cereri noi de interogare trebuie să fie acelaşi cu (sau un subset al) rezultatelor din memoria cache pt. a se califica drept reuşită cache. |
|
Atributul |
Dacă o interogare din memoria cache elimină înregistrările duplicate prin procesare |
|
Interogările trebuie să conţină niveluri de agregare compatibile |
Interogările care cer un nivel agregat de informaţii pot folosi rezultatele din memoria cache la un nivel mai scăzut de agregare. De exemplu, următoarea interogare cere cantitatea vândută la nivel de furnizor şi regiune şi localitate: SELECT supplier, region, city, qtysold FROM suppliercity Următoarea interogare cere cantitatea vândută la nivel de localitate: SELECT city, qtysold FROM suppliercity A doua interogare are drept rezultat o reuşită cache pe prima interogare. |
|
Agregare suplimentară limitată |
De exemplu, dacă o interogare cu coloana |
|
Clauza |
Interogările care ordonează după coloane care nu sunt conţinute în lista de selectare au drept rezultat ratări cache. |
|
Diagnosticarea comportamentului de reuşite cache |
Pentru a evalua mai bine comportamentul reuşitelor cache, setaţi variabila de sesiune ENABLE_CACHE_DIAGNOSTICS la valoarea 4, aşa cum este ilustrat în următorul exemplu: ENABLE_CACHE_DIAGNOSTICS=4 |