Quando o armazenamento no cache está ativado, cada consulta é avaliada para determinar se ela se qualifica para uma ocorrência no cache.
Uma ocorrência no cache significa que o Oracle Analytics Cloud conseguiu usar o cache para responder à consulta e não acessou o banco de dados. O Oracle Analytics Cloud pode usar o cache de consulta para responder às consultas no mesmo nível de agregação ou mais alto.
Muitos fatores determinam se houve ocorrência no cache. A tabela a seguir descreve esses fatores.
| Fator ou Regra | Descrição |
|---|---|
|
Um subconjunto de colunas na lista |
Todas as colunas na lista Essa regra descreve o requisito mínimo para ocorrência no cache, mas o cumprimento dessa regra não garante uma ocorrência. As outras regras listadas nessa tabela também se aplicam. |
|
As colunas na lista |
O Oracle Analytics Cloud pode calcular expressões nos resultados armazenados no cache para responder à nova consulta, mas todas as colunas devem estar no resultado armazenado no cache. Por exemplo, a consulta: SELECT product, month, averageprice FROM sales WHERE year = 2000 atinge o cache na consulta: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 porque |
|
A cláusula |
Para que a consulta se qualifique como ocorrência no cache, as restrições da cláusula Uma cláusula
Além disso, as colunas usadas na cláusula SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Não resulta em uma ocorrência no cache para a consulta de pré-implantação na lista anterior porque REGION não está na lista de projeção. |
|
As consultas somente dimensão devem ser uma correspondência exata |
Se uma consulta for somente dimensão, significando que nenhum fato ou medida está incluído nela, somente uma correspondência exata das colunas de projeção da consulta armazenada no cache atingirão o cache. Esse comportamento evita falsos positivos quando há várias origens lógicas para uma tabela de dimensão. |
|
As consultas com funções especiais devem ser uma correspondência exata |
Outras consultas contendo funções especiais, como série de tempo ( |
|
O conjunto de tabelas lógicas deve corresponder |
Para que se qualifiquem como ocorrência no cache, todas as consultas de entrada devem ter o mesmo conjunto de tabelas lógicas que a entrada no cache. Essa regra evita falsas ocorrências no cache. Por exemplo, |
|
Os valores de variável de sessão devem corresponder, inclusive variáveis de sessão de segurança |
Se a instrução SQL lógica ou física se referir a qualquer variável de sessão, os valores das variáveis deverão corresponder. Caso contrário, o cache não será atingido. Além disso, o valor das variáveis de sessão sensíveis à segurança devem corresponder aos valores de variável de sessão de segurança definidos no modelo semântico, mesmo que a própria instrução SQL lógica não mencione variáveis de sessão. Consulte Assegurar Resultados Corretos do Cache ao Usar a Segurança do Banco de Dados no Nível de Linha. |
|
Condições de junção equivalentes |
A tabela lógica resultante unida de uma nova solicitação de consulta deve ser a mesma (ou um subconjunto) dos resultados armazenados no cache para se qualificar a uma ocorrência no cache. |
|
O atributo |
Se uma consulta armazenada no cache eliminar registros duplicados com processamento |
|
As consultas devem conter níveis de agregação compatíveis |
As consultas que solicitam um nível agregado de informações podem usar resultados armazenados no cache em um nível mais baixo de agregação. Por exemplo, a seguinte consulta solicita a quantidade vendida no nível de fornecedor, região e cidade: SELECT supplier, region, city, qtysold FROM suppliercity A seguinte consulta solicita a quantidade vendida no nível de cidade: SELECT city, qtysold FROM suppliercity A segunda consulta resulta em uma ocorrência no cache na primeira consulta. |
|
Agregação adicional limitada |
Por exemplo, se uma consulta com a coluna |
|
A cláusula |
As consultas ordenadas por colunas que não estão contidas na lista de seleção resultam em ausências no cache. |
|
Diagnosticando o comportamento de ocorrência no cache |
Para avaliar melhor o comportamento de ocorrência no cache, defina a variável de sessão ENABLE_CACHE_DIAGNOSTICS como 4, conforme mostrado no seguinte exemplo: ENABLE_CACHE_DIAGNOSTICS=4 |