Quando a colocação na cache está ativada, cada consulta é avaliada para determinar se se qualifica para um sucesso da cache.
Um sucesso da cache significa que o Oracle Analytics Cloud conseguiu utilizar a cache para responder à consulta sem ter de recorrer à base de dados. O Oracle Analytics Cloud pode utilizar a cache de consultas para responder a consultas ao mesmo nível ou a um nível superior de agregação.
Muitos fatores determinam o sucesso da cache. A tabela abaixo descreve estes fatores.
| Fator ou Regra | Descrição |
|---|---|
|
Um subconjunto de colunas na lista |
Todas as colunas da lista Esta regra descreve o requisito mínimo para o sucesso da cache, mas o cumprimento desta regra não garante um sucesso da cache. As outras regras listadas nesta tabela também se aplicam. |
|
As colunas na lista |
O Oracle Analytics Cloud pode calcular expressões nos resultados em cache para responder à nova consulta, mas todas as colunas devem estar no resultado em cache. Por exemplo, a consulta: SELECT product, month, averageprice FROM sales WHERE year = 2000 obtém um sucesso da cache na consulta: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 porque |
|
A cláusula |
Para que a consulta se qualifique como um sucesso da cache, as restrições da cláusula Uma cláusula
Além disso, as colunas que são utilizadas na cláusula SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Não resulta num sucesso da cache para a consulta de criação na lista anterior porque REGION não está na lista de projeções. |
|
As consultas só de dimensão devem ser uma correspondência exata |
Se uma consulta for só de dimensão, o que significa que nenhum facto ou medida está incluído na consulta, apenas uma correspondência exata das colunas de projeção da consulta em cache será um sucesso da cache. Este comportamento impede falsos positivos quando existem várias origens lógicas para uma tabela de dimensões. |
|
As consultas com funções especiais devem ser uma correspondência exata |
As outras consultas que contêm funções especiais, como funções de série de tempo ( |
|
O conjunto de tabelas lógicas deve corresponder |
Para se qualificarem como um sucesso da cache, todas as consultas recebidas devem ter o mesmo conjunto de tabelas lógicas que a entrada da cache. Esta regra evita sucessos da cache falsos. Por exemplo, |
|
Os valores das variáveis da sessão devem corresponder, incluindo as variáveis da sessão de segurança |
Se a instrução de SQL lógico ou SQL físico fizer referência a qualquer variável da sessão, os valores das variáveis da sessão devem corresponder. Caso contrário, não ocorre um sucesso da cache. Além disso, o valor das variáveis da sessão que são sensíveis à segurança deve corresponder aos valores das variáveis da sessão de segurança definidos no modelo semântico, mesmo que a própria instrução de SQL lógico não faça referência às variáveis da sessão. Consulte Assegurar Resultados da Cache Corretos ao Utilizar a Segurança da Base de Dados ao Nível da Linha. |
|
Condições de junção equivalentes |
A tabela lógica com junção resultante de um novo pedido de consulta tem de ser idêntica (ou um subconjunto de) aos resultados em cache para se qualificar para um sucesso da cache. |
|
O atributo |
Se uma consulta em cache eliminar registos duplicados com o processamento |
|
As consultas devem conter níveis de agregação compatíveis |
As consultas que pedem um nível agregado de informações podem utilizar os resultados em cache a um nível de agregação inferior. Por exemplo, a consulta seguinte pede a quantidade vendida ao nível do fornecedor, da região e da localidade: SELECT supplier, region, city, qtysold FROM suppliercity A consulta seguinte pede a quantidade vendida ao nível da localidade: SELECT city, qtysold FROM suppliercity A segunda consulta resulta num sucesso da cache na primeira consulta. |
|
Agregação adicional limitada |
Por exemplo, se uma consulta com a coluna |
|
A cláusula |
As consultas que ordenam por colunas que não estão contidas na lista Select resultam em falhas da cache. |
|
Diagnosticar o comportamento de sucesso da cache |
Para avaliar melhor o comportamento de sucesso da cache, defina a variável da sessão ENABLE_CACHE_DIAGNOSTICS como 4, como mostrado no exemplo seguinte: ENABLE_CACHE_DIAGNOSTICS=4 |