Wanneer caches zijn geactiveerd, wordt elke zoekvraag geëvalueerd om te bepalen of deze zich kwalificeert voor een cachetreffer.
Een cachetreffer betekent dat Oracle Analytics Cloud in staat was de cache te gebruiken om de zoekvraag te beantwoorden en helemaal geen gebruik hoefde te maken van de database. Oracle Analytics Cloud kan de zoekvraagcache gebruiken om zoekvragen op hetzelfde of een hoger aggregatieniveau te beantwoorden.
Vele factoren bepalen mede of een cachetreffer heeft plaatsgevonden. In de onderstaande tabel worden deze factoren beschreven.
| Factor of regel | Beschrijving |
|---|---|
|
Een subset kolommen in de |
Alle kolommen in de Deze regel beschrijft de minimale vereiste om van een cachetreffer te spreken, maar aan deze regel voldoen is geen garantie voor een cachetreffer. De overige regels in deze tabel zijn ook van toepassing. |
|
Kolommen in de |
Oracle Analytics Cloud kan uitdrukkingen op resultaten in de cache berekenen als antwoord op de nieuwe zoekvraag, maar alle kolommen moeten zich in het resultaat in de cache bevinden. Bijvoorbeeld, de zoekvraag: SELECT product, month, averageprice FROM sales WHERE year = 2000 treffers in cache op de zoekvraag: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 omdat |
|
|
Voordat de zoekvraag kan worden gekwalificeerd als een cachetreffer, moeten de beperkingen van de Een
Bovendien moet kolommen die worden gebruikt in de SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Resulteert niet in een cachetreffer voor de vulzoekvraag in de vorige lijst omdat REGION niet op de projectielijst staat. |
|
Zoekvragen met alleen dimensies moeten een exacte match opleveren. |
Als een zoekvraag alleen een dimensie bevat, dit wil zeggen dat er geen feit of meting is opgenomen in de zoekvraag, dan zorgt alleen een exacte match van de projectiekolommen van de zoekvraag in de cache voor een treffer die de cache treft. Door dit gedrag wordt het optreden van 'valse positieven' vermeden wanneer er meerdere logische bronnen zijn voor een dimensietabel. |
|
Zoekvragen met speciale functies moeten een exacte match zijn. |
Andere zoekvragen die speciale functies bevatten, zoals tijdreeksfuncties, ( |
|
Een set logische tabellen moet matchen |
Om te worden gekwalificeerd als een cachetreffer, moeten alle inkomende zoekvragen dezelfde set logische tabellen hebben als de cache-ingang. Door deze regel worden ongeldige cachetreffers vermeden. Bijvoorbeeld: |
|
Waarden van sessievariabelen moeten matchen, inclusief veiligheidssessievariabelen. |
Als het logische of fysieke SQL-statement verwijst naar een sessievariabele, moeten de waarden van de sessievariabelen matchen. Anders kunnen we niet spreken van een cachetreffer. Bovendien moeten de waarden van de sessievariabelen die veiligheidsgevoelig zijn, matchen met de waarden van de veiligheidssessievariabelen die zijn gedefinieerd in semntisch model, ook als het logische SQL-statement zelf niet verwijst naar sessievariabelen. Zie Zorgen voor correcte cacheresultaten bij het gebruik van databasebeveiliging op rijniveau. |
|
Gelijkwaardige join-voorwaarden |
De logische join-tabel die het resultaat is van een nieuwe zoekvraag moet hetzelfde zijn als (of een subset zijn van) de resultaten in cache om te worden gekwalificeerd als een cachetreffer. |
|
Het |
Als een zoekvraag in cache dubbele records door een verwerking met |
|
Zoekvragen moeten compatibele aggregatieniveaus bevatten. |
Zoekvragen die een geaggregeerd informatieniveau aanvragen, kunnen resultaten in de cache gebruiken op een lager aggregatieniveau. In de volgende zoekvraag worden bijvoorbeeld de verkochte hoeveelheid bij de leverancier op regionaal en op plaatselijk niveau aangevraagd: SELECT supplier, region, city, qtysold FROM suppliercity In de volgende zoekvraag wordt de verkochte hoeveelheid op het plaatselijk niveau aangevraagd: SELECT city, qtysold FROM suppliercity De tweede zoekvraag resulteert in een cachetreffer op de eerste zoekvraag. |
|
Beperkte extra aggregatie |
Als bijvoorbeeld een zoekvraag met de kolom |
|
De |
Zoekvragen die zijn geordend op kolommen die niet zijn opgenomen in de SELECT-list, resulteren in cachemissers. |
|
Diagnose stellen van het gedrag van cachetreffers |
Om het gedrag van cachetreffers beter te kunnen beoordelen, stelt u de sessievariabele ENABLE_CACHE_DIAGNOSTICS in op '4', zoals in het volgende voorbeeld wordt getoond: ENABLE_CACHE_DIAGNOSTICS=4 |