Když je povoleno používat paměť cache, je u každého dotazu vyhodnoceno, zda je oprávněn k přístupu do paměti cache.
Přístup do paměti cache je umožněn, pokud služba Oracle Analytics Cloud dokáže použít paměť cache k zodpovězení dotazu, přičemž v takovém případě vůbec nepřejde do databáze. Služba Oracle Analytics Cloud může pomocí paměti cache dotazů odpovídat na dotazy na stejné nebo vyšší úrovni agregace.
O možnosti přistupovat do paměti cache rozhoduje mnoho faktorů. Tyto faktory jsou popsány v níže uvedené tabulce.
| Faktor nebo pravidlo | Popis |
|---|---|
|
Podmnožina sloupců v seznamu |
Všechny sloupce v seznamu Toto pravidlo popisuje minimální požadavek pro přístup do paměti cache, ale splnění tohoto pravidla přístup do paměti cache nezaručuje. Platí také ostatní pravidla uvedená v této tabulce. |
|
Sloupce v seznamu |
Služba Oracle Analytics Cloud může k získání odpovědi na nový dotaz vypočítat výrazy zahrnující výsledky obsažené v paměti cache, ale všechny sloupce musí být obsaženy ve výsledku uloženém v paměti cache. Například dotaz: SELECT product, month, averageprice FROM sales WHERE year = 2000 využije při přístupu do paměti cache dotaz: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 protože údaj |
|
Klauzule |
Pokud má dotaz získat oprávnění k přístupu do paměti cache, musí být omezení klauzule Klauzule
Kromě toho musí být sloupce použité v klauzuli SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Neumožní přístup do paměti cache pro dotaz v předchozím seznamu, protože položka REGION není uvedena v seznamu projekcí. |
|
Dotazy týkající se pouze dimenze se musí přesně shodovat. |
Pokud se dotaz týká pouze dimenze, což znamená, že neobsahuje žádný fakt ani ukazatel, pak přístup do paměti cache zajistí pouze přesná shoda se sloupci projekce dotazu uloženého v paměti cache. Toto chování zabrání falešně pozitivním shodám, když pro tabulku dimenzí existuje více logických zdrojů. |
|
Dotazy se speciálními funkcemi se musí přesně shodovat. |
Další dotazy, které obsahují speciální funkce, jako jsou funkce časových řad ( |
|
Sada logických tabulek se musí shodovat. |
K získání oprávnění pro přístup do paměti cache musí mít všechny příchozí dotazy stejnou sadu logických tabulek jako položka v paměti cache. Toto pravidlo zabrání falešným přístupům do paměti cache. Například dotaz |
|
Hodnoty proměnných relace se musí shodovat, včetně proměnných relace zabezpečení. |
Pokud logický příkaz SQL nebo fyzický příkaz SQL odkazuje na libovolnou proměnnou relace, musí se hodnoty proměnné relace shodovat. V opačném případě není přístup do paměti cache povolen. Kromě toho se hodnoty proměnných relace, které jsou citlivé z hlediska zabezpečení, musí shodovat s hodnotami proměnných relace zabezpečení, které jsou definovány v sémantickém modelu, přestože samotný logický příkaz SQL na proměnné relace neodkazuje. Viz část Zajištění správných výsledků v paměti cache při používání zabezpečení databáze na úrovni řádek. |
|
Ekvivalentní podmínky spojení |
K získání oprávnění pro přístup do paměti cache musí být výsledná spojená logická tabulka požadavku nového dotazu shodná s výsledky (nebo jejich podmnožinou) v paměti cache. |
|
Atribut |
Pokud dotaz uložený v paměti cache odstraňuje duplicitní záznamy pomocí zpracování |
|
Dotazy musí obsahovat kompatibilní úrovně agregace. |
Dotazy, které vyžadují agregovanou úroveň informací, mohou použít výsledky obsažené v paměti cache na nižší úrovni agregace. Následující dotaz například požaduje množství prodané na úrovni dodavatele, regionu a města: SELECT supplier, region, city, qtysold FROM suppliercity Následující dotaz požaduje množství prodané na úrovni města: SELECT city, qtysold FROM suppliercity Druhý dotaz povede k přístupu do paměti cache přes první dotaz. |
|
Omezená další agregace |
Pokud je například v paměti cache uložen dotaz se sloupcem |
|
Klauzule |
Dotazy s řazením podle sloupců, které nejsou obsaženy v seznamu SELECT, způsobí, že v paměti cache nebudou nalezena žádná data. |
|
Diagnostika chování přístupu do paměti cache |
Chcete-li lépe posoudit chování přístupu do paměti cache, nastavte proměnnou relace ENABLE_CACHE_DIAGNOSTICS na hodnotu 4, jak ukazuje následující příklad: ENABLE_CACHE_DIAGNOSTICS=4 |