Gdy jest włączone buforowanie (przechowywanie w pamięci podręcznej), każde zapytanie jest oceniane w celu ustalenia, czy kwalifikuje się do trafienia w pamięci podręcznej.
Trafienie w pamięci podręcznej oznacza, że Oracle Analytics Cloud była w stanie użyć pamięci podręcznej do odpowiedzenia na zapytanie i nie przechodziła do bazy danych. Oracle Analytics Cloud może używać pamięci podręcznej zapytań do udzielania odpowiedzi na zapytania na tym samym lub wyższym poziomie agregacji.
O trafieniu w pamięci podręcznej decyduje wiele czynników. Zostały one opisane w poniższej tabeli.
| Czynnik lub reguła | Opis |
|---|---|
|
Musi być zgodny podzbiór kolumn z listy |
Aby można było uznać za trafienie w pamięci podręcznej, muszą w buforowanym zapytaniu istnieć wszystkie kolumny z listy Ta reguła opisuje minimalny wymóg dotyczący trafienia w pamięci podręcznej, lecz spełnienie tej reguły nie gwarantuje trafienia. Mają zastosowanie także inne reguły wymienione w tej tabeli. |
|
Kolumny z listy |
Oracle Analytics Cloud, aby odpowiedzieć na nowe zapytanie, może obliczyć wyrażenia z użyciem buforowanych wyników, lecz w buforowanym wyniku muszą się znajdować wszystkie te kolumny. Na przykład zapytanie: SELECT product, month, averageprice FROM sales WHERE year = 2000 ma trafienie w pamięci podręcznej, wynikające z zapytania: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 ponieważ |
|
Klauzula |
Aby zapytanie mogło zostać zakwalifikowane jako trafienie w pamięci podręcznej, więzy klauzuli Klauzula
Dodatkowo kolumny, które są używane w klauzuli SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
nie stanowi trafienia w pamięci podręcznej związanego z zapytaniem wypełniającym na poprzedniej liście, ponieważ na liście rzutowania nie ma kolumny REGION. |
|
Zapytania tylko z wymiarami muszą być w pełni zgodne |
Jeśli zapytanie jest zapytaniem tylko z wymiarami, tj. w zapytaniu nie są zawarte żadne fakty ani miary, to trafienie w pamięci podręcznej ma miejsce tylko przy pełnej zgodności kolumn rzutowania z zapytania buforowanego. Takie działanie zapobiega wynikom fałszywie pozytywnym, gdy dla tabeli wymiarów istnieje więcej niż jedno źródło logiczne. |
|
Zapytania z funkcjami specjalnymi muszą być w pełni zgodne |
Inne zapytania zawierające funkcje specjalne, takie jak funkcje ciągów czasowych ( |
|
Zbiór tabel logicznych musi być zgodny |
Wszystkie przychodzące zapytania, aby mogły zostać zakwalifikowane jako trafienie w pamięci podręcznej, muszą mieć ten sam zbiór tabel logicznych co buforowany wpis. Ta reguła zapobiega fałszywym trafieniom w pamięci podręcznej. Na przykład |
|
Wartości zmiennych sesyjnych, w tym zmiennych sesyjnych związanych z zabezpieczeniami, muszą być zgodne |
Jeśli instrukcja fizycznego lub logicznego SQL odwołuje się do jakiejkolwiek zmiennej sesyjnej, to wartości zmiennych sesyjnych muszą być zgodne. W przeciwnym razie nie nastąpi trafienie w pamięci podręcznej. Ponadto wartości zmiennych sesyjnych wrażliwych na zabezpieczenia muszą być zgodne ze zdefiniowanymi w modelu semantycznym wartościami zmiennych sesyjnych związanych z zabezpieczeniami, nawet jeśli instrukcja logicznego SQL nie odwołuje się do zmiennych sesyjnych. Zob. Zapewnienie właściwych wyników z pamięci podręcznej, gdy dla bazy danych są używane zabezpieczenia na poziomie wierszy. |
|
Równoważne warunki złączenia |
Powstająca wskutek nowego zapytania złączona tabela logiczna musi - aby została zakwalifikowana jako trafienie w pamięci podręcznej - być identyczna z buforowanymi wynikami albo stanowić ich podzbiór. |
|
Atrybut |
Jeśli buforowane zapytanie eliminuje duplikaty za pomocą przetwarzania |
|
Zapytania muszą zawierać kompatybilne poziomy agregacji |
Zapytania żądające zagregowanego poziomu informacji mogą korzystać z buforowanych wyników na niższym poziomie agregacji. Na przykład poniższe zapytanie ma uzyskać ilość sprzedaną na poziomie dostawcy, regionu oraz miejscowości: SELECT supplier, region, city, qtysold FROM suppliercity Poniższe zapytanie uzyskuje ilość sprzedaną na poziomie miejscowości: SELECT city, qtysold FROM suppliercity Drugie zapytanie stanowi trafienie w pamięci podręcznej, związane z pierwszym zapytaniem. |
|
Ograniczona dodatkowa agregacja |
Na przykład, jeśli zapytanie z kolumną |
|
Klauzula |
Zapytania porządkujące wyniki według kolumn, które nie są zawarte w wynikach listy SELECT, stanowią chybienia w pamięci podręcznej. |
|
Diagnozowanie funkcjonowania trafień w pamięci podręcznej |
Chcąc lepiej ocenić funkcjonowanie trafień w pamięci podręcznej, należy ustawić zmienną sesyjną ENABLE_CACHE_DIAGNOSTICS na 4, jak pokazano w następującym przykładzie: ENABLE_CACHE_DIAGNOSTICS=4 |