Lorsque la mise en mémoire cache est activée, chaque interrogation est évaluée pour déterminer si elle remplit les conditions d'une présence dans la mémoire cache.
Une présence dans la mémoire cache signifie qu'Oracle Analytics Cloud a pu utiliser la mémoire cache pour répondre à l'interrogation sans avoir eu besoin d'aller dans la base de données. Oracle Analytics Cloud peut utiliser la mémoire cache d'interrogation pour répondre à des interrogations au même niveau d'agrégation ou à un niveau supérieur.
De nombreux facteurs déterminent les présences dans la mémoire cache. Ces facteurs sont décrits dans le tableau ci-dessous.
| Facteur ou règle | Description |
|---|---|
|
Un sous-ensemble de colonnes de la liste |
Toutes les colonnes de la liste Cette règle décrit les conditions minimales d'une présence dans la mémoire cache, mais satisfaire à cette règle ne garantit pas une présence. Les autres règles listées dans ce tableau doivent également s'appliquer. |
|
Les colonnes de la liste |
Oracle Analytics Cloud peut calculer des expressions pour les résultats mis en mémoire cache afin de répondre à la nouvelle interrogation, mais toutes les colonnes doivent se trouver dans le résultat mis en mémoire cache. Par exemple, l'interrogation : SELECT product, month, averageprice FROM sales WHERE year = 2000 entraîne des présences dans la mémoire cache pour l'interrogation : SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 , car |
|
La clause |
Pour que l'interrogation remplisse les conditions d'une présence dans la mémoire cache, les contraintes de la clause Une clause
En outre, les colonnes qui sont utilisées pour la clause SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
n'entraîne pas une présence dans la mémoire cache pour l'interrogation de prédéfinition de la liste précédente, car REGION ne figure pas dans la liste de projection. |
|
Les interrogations de dimension seulement doivent constituer une correspondance exacte. |
S'il s'agit d'une interrogation de dimension seulement, c'est-à-dire qu'aucun fait ou mesure n'est inclus dans l'interrogation, seule une correspondance exacte des colonnes de projection de l'interrogations mise en mémoire cache représente des présences dans la mémoire cache. Ce comportement empêche les faux positifs lorsqu'il existe plusieurs sources logiques pour une table de dimension. |
|
Les interrogations avec des fonctions spéciales doivent constituer une correspondance exacte. |
Les autres interrogations qui contiennent des fonctions spéciales comme les fonctions de série chronologique ( |
|
Le jeu de tables logiques doit correspondre |
Pour remplir les conditions d'une présence dans la mémoire cache, toutes les interrogations entrantes doivent avoir le même jeu de tables logiques que l'entrée de la mémoire cache. Cette règle empêche les fausses présences dans la mémoire cache. Par exemple, |
|
Les valeurs des variable de session doivent correspondre, notamment les variables de session de sécurité |
Si l'énoncé SQL logique ou physique réfère à des variables de session, les valeurs de ces variables doivent correspondre. Sinon, il ne s'agit pas d'une présence dans la mémoire cache. De plus, les valeurs des variables de session qui sont sensibles à la sécurité doivent correspondre aux valeurs des variables de session de sécurité définies dans le modèle sémantique, même si l'énoncé SQL logique lui-même ne référence pas les variables de session. Voir Garantir des résultats de la mémoire cache corrects lors de l'utilisation d'une sécurité de base de données au niveau de la rangée. |
|
Conditions de liaison équivalentes |
La table logique jointe obtenue d'une nouvelle demande d'interrogation doit être identique aux résultats mis en mémoire cache (ou un sous-ensemble) pour remplir les conditions d'une présence dans la mémoire cache. |
|
L'attribut |
Si une interrogation mise en mémoire cache élimine les enregistrements en double avec le traitement |
|
Les interrogations doivent contenir des niveaux d'agrégation compatibles |
Les interrogations qui demandent un niveau agrégé d'informations peuvent utiliser des résultats mis en mémoire cache à un niveau inférieur d'agrégation. Par exemple, l'interrogation suivante demande la quantité vendue au niveau du fournisseur, de la région et de la ville : SELECT supplier, region, city, qtysold FROM suppliercity L'interrogation suivante demande la quantité vendue au niveau de la ville : SELECT city, qtysold FROM suppliercity La deuxième interrogation entraîne une présence dans la mémoire cache pour la première interrogation. |
|
Agrégation supplémentaire limitée |
Par exemple, si une interrogation avec la colonne |
|
La clause |
Les interrogations pour trier par des colonnes qui ne sont pas contenues dans la liste de sélection entraînent des absences dans la mémoire cache. |
|
Diagnostic du comportement des présences dans la mémoire cache |
Pour mieux évaluer le comportement des présences dans la mémoire cache, réglez la variable de session ENABLE_CACHE_DIAGNOSTICS à 4, comme illustré dans l'exemple suivant : ENABLE_CACHE_DIAGNOSTICS=4 |