Lorsque la mise en cache est activée, chaque requête est évaluée pour déterminer si elle peut générer un accès réussi au cache.
Un accès réussi au cache signifie qu'Oracle Analytics Cloud a pu utiliser le cache pour répondre à la requête sans jamais passer par la base de données. Oracle Analytics Cloud peut utiliser le cache de requêtes pour répondre aux requêtes à un niveau d'agrégation identique ou supérieur.
De nombreux facteurs déterminent l'accès réussi au cache. Le tableau ci-dessous décrit ces facteurs.
| Facteur ou règle | Description |
|---|---|
|
Un sous-ensemble de colonne dans la liste |
Toutes les colonnes de la liste Cette règle décrit les exigences minimales d'accès au cache, mais le respect de cette règle ne garantit pas un accès réussi au cache. Les autres règles répertoriées dans ce tableau s'appliquent également. |
|
Les colonnes de la liste |
Oracle Analytics Cloud peut calculer les expressions des résultats mis en cache afin de répondre à la nouvelle requête, mais toutes les colonnes doivent figurer dans le résultat mis en cache. Par exemple, la requête : SELECT product, month, averageprice FROM sales WHERE year = 2000 entraîne un accès réussi au cache sur la requête : SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 car |
|
La clause |
Pour que la requête puisse générer un accès réussi au cache, les contraintes de la clause Une clause
Par ailleurs, les colonnes utilisées sur la clause SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
ne génère pas un accès réussi au cache pour la requête de prédéfinition de la liste précédente car REGION ne figure pas dans la liste de projection. |
|
Les requêtes de dimension uniquement doivent constituer des correspondances exactes |
S'il s'agit d'une requête de dimension uniquement, c'est-à-dire qu'aucun fait ou indicateur n'est inclus dans la requête, seule une correspondance exacte des colonnes de projection de la requête mise en cache entraîne un accès réussi au cache. Ce comportement empêche les faux positifs en présence de plusieurs sources logiques pour une table de dimensions. |
|
Les requêtes avec des fonctions spéciales doivent constituer des correspondances exactes |
Les autres requêtes contenant des fonctions spéciales telles que les fonctions de séries temporelles ( |
|
L'ensemble de tables logiques doit concorder |
Pour pouvoir générer des accès réussis au cache, toutes les requêtes entrantes doivent posséder le même ensemble de tables logiques que l'entrée de cache. Cette règle permet d'éviter les faux accès réussis au cache. Par exemple, |
|
Les valeurs de variable de session doivent concorder, y compris les variables de session de sécurité |
Si l'instruction SQL physique ou logique fait référence à une variable de session, les valeurs de variable de session doivent concorder. Sinon, la requête n'accède pas au cache. Par ailleurs, les valeurs des variables de session en lien avec la sécurité doivent correspondre aux valeurs de variable de session de sécurité définies dans le modèle sémantique, même si l'instruction SQL logique en elle-même ne référence pas les variables de session. Reportez-vous à Résultats de cache corrects assurés lors de l'utilisation de la sécurité de base de données de niveau ligne. |
|
Conditions de jointure équivalentes |
La table logique jointe résultante d'une nouvelle demande de requête doit être identique aux résultats mis en cache (ou en représenter un sous-ensemble) pour pouvoir générer un accès réussi au cache. |
|
L'attribut |
Si une requête mise en cache élimine les enregistrements en double via le traitement |
|
Les requêtes doivent contenir des niveaux d'agrégation compatibles |
Les requêtes qui demandent un niveau d'informations agrégé peuvent utiliser les résultats mis en cache à un niveau inférieur d'agrégation. Par exemple, la requête suivante demande la quantité vendue au niveau du fournisseur, de la région et de la ville : SELECT supplier, region, city, qtysold FROM suppliercity La requête suivante demande la quantité vendue au niveau de la ville : SELECT city, qtysold FROM suppliercity La seconde requête génère un accès réussi au cache sur la première requête. |
|
Agrégation supplémentaire limitée |
Par exemple, si une requête avec la colonne |
|
La clause |
Les requêtes avec des colonnes ORDER BY qui n'apparaissent pas dans la liste SELECT génèrent des accès non réussis au cache. |
|
Diagnostic du comportement d'accès réussi au cache |
Pour mieux évaluer le comportement d'accès réussi au cache, définissez la variable de session ENABLE_CACHE_DIAGNOSTICS sur 4, comme indiqué dans l'exemple suivant : ENABLE_CACHE_DIAGNOSTICS=4 |