Keď je aktivované ukladanie do cache, každý dopyt sa vyhodnotí s cieľom stanoviť, či sa kvalifikuje ako úspešné hľadanie v cache.
Úspešné hľadanie v cache znamená, že služba Oracle Analytics Cloud dokázala použiť cache na zodpovedanie dopytov a vôbec nepoužila databázu. Oracle Analytics Cloud môže použiť cache dopytov na zodpovedanie dopytov na rovnakej alebo vyššej úrovni agregácie.
Úspešnosť hľadania v cache určuje mnoho faktorov. Nižšie uvedená tabuľka popisuje tieto faktory.
| Faktor alebo pravidlo | Popis |
|---|---|
|
Podmnožina stĺpcov v zozname |
Všetky stĺpce v zozname Toto pravidlo popisuje minimálnu požiadavku na úspešné hľadanie v cache, ale dodržanie tohto pravidla nezaručuje úspešné hľadanie v cache. Platia aj ostatné pravidlá uvedené v tejto tabuľke. |
|
Stĺpce v zozname |
Služba Oracle Analytics Cloud dokáže vypočítať výrazy pre výsledky uložené v cache s cieľom odpovedať na nový dopyt, ale všetky stĺpce musia byť vo výsledku uloženom v cache. Napríklad dopyt: SELECT product, month, averageprice FROM sales WHERE year = 2000 je úspešne vyhľadaný v cache pri dopyte: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 pretože |
|
Klauzula |
Aby sa dopyt kvalifikoval ako úspešné hľadanie v cache, obmedzenia klauzuly Klauzula
Navyše stĺpce, ktoré sa používajú v klauzule SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Nemá za následok úspešné hľadanie v cache pre zdrojový dopyt v predchádzajúcom zozname, pretože REGION nie je v zozname projekcií. |
|
Dopyty len s dimenziou musia byť presnou zhodou |
Ak je dopyt iba s dimenziou, čo znamená, že nezahŕňa žiadny fakt ani mieru, potom iba presná zhoda stĺpcov projekcie dopytu uloženého v cache bude úspešne vyhľadaná v cache. Toto správanie zabraňuje falošne pozitívnym výsledkom, keď existuje viacero logických zdrojov pre tabuľku dimenzií. |
|
Dopyty so špeciálnymi funkciami sa musia presne zhodovať |
Ďalšie dopyty, ktoré obsahujú špeciálne funkcie, napríklad funkcie časovej série ( |
|
Množina logických tabuliek sa musí zhodovať |
Aby sa kvalifikovali ako úspešné hľadanie v cache, všetky prichádzajúce dopyty musia mať rovnakú množinu logických tabuliek ako položka v cache. Toto pravidlo zabraňuje falošným úspešným hľadaniam v cache. Napríklad výraz |
|
Hodnoty premenných relácie sa musia zhodovať, a to vrátane premenných relácie týkajúcich sa zabezpečenia |
Ako logický alebo fyzický príkaz SQL odkazuje na akúkoľvek premennú relácie, hodnoty premenných relácie sa musia zhodovať. Inak nebude hľadanie v cache úspešné. Okrem toho hodnota premenných relácie, ktoré sú citlivé na zabezpečenie, sa musí zhodovať s hodnotami premenných relácie týkajúcimi sa zabezpečenia, ktoré sú definované v sémantickom modeli, hoci samotný logický príkaz SQL neodkazuje na premenné relácie. Pozrite si časť Zaistenie správnych výsledkov cache pri použití zabezpečenia databázy na úrovni riadka. |
|
Ekvivalentné podmienky spojenia |
Výsledná spojená logická tabuľka novej požiadavky na dopyt musí by rovnaká ako výsledky uložené v cache (alebo ich podmnožina), aby sa kvalifikovala ako úspešné hľadanie v cache. |
|
Atribút |
Ak dopyt uložený v cache eliminuje duplicitné záznamy so spracovaním |
|
Dopyty musia obsahovať kompatibilné úrovne agregácie |
Dopyty, ktoré požadujú agregovanú úroveň informácií, môžu použiť výsledky uložené v cache na nižšej úrovni agregácie. Nasledujúci dopyt napríklad požaduje predané množstvo na úrovni dodávateľa, oblasti a mesta: SELECT supplier, region, city, qtysold FROM suppliercity Nasledujúci dopyt požaduje predané množstvo na úrovni mesta: SELECT city, qtysold FROM suppliercity Druhý dopyt má za následok úspešné hľadanie v cache pre prvý dopyt. |
|
Obmedzená ďalšia agregácia |
Ak je napríklad v cache uložený dopyt so stĺpcom |
|
Klauzula |
Dopyty zoradené podľa stĺpcov, ktoré sa nenachádzajú vo výberovom zozname, majú za následok neúspešné hľadania v cache. |
|
Diagnostika správania úspešného hľadania v cache |
Aby bolo možné lepšie posúdiť správanie úspešného hľadania v cache, nastavte premennú relácie ENABLE_CACHE_DIAGNOSTICS na hodnotu 4 ako v nasledujúcom príklade: ENABLE_CACHE_DIAGNOSTICS=4 |