Paramètres d'initialisation

Autonomous Database configure automatiquement les paramètres d'initialisation de base de données lorsque vous provisionnez une base de données. Vous n'avez pas besoin de définir de paramètres d'initialisation pour commencer à utiliser votre service. Toutefois, vous pouvez modifier certains paramètres si nécessaire.

Paramètres d'initialisation modifiables

Le tableau suivant présente les paramètres d'initialisation modifiables uniquement avec ALTER SESSION.

Modifiable uniquement avec ALTER SESSION Informations supplémentaires
CONSTRAINTS  
CONTAINER  
CURRENT_SCHEMA  
CURSOR_INVALIDATION CURSOR_INVALIDATION
DEFAULT_COLLATION  
DEFAULT_CREDENTIAL  
EDITION  
ISOLATION_LEVEL  
JSON_BEHAVIOR

Ce paramètre est applicable uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à JSON_BEHAVIOR.

JSON_EXPRESSION_CHECK JSON_EXPRESSION_CHECK
OPTIMIZER_SESSION_TYPE

OPTIMIZER_SESSION_TYPE

OPTIMIZER_USE_INVISIBLE_INDEXES

OPTIMIZER_USE_INVISIBLE_INDEXES

READ_ONLY  
SQL_TRACE

Pour plus d'informations, reportez-vous à Exécution de la fonction de trace SQL sur Autonomous Database.

SQL_TRANSLATION_PROFILE  
SQL_TRANSPILER

Ce paramètre est applicable uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à SQL_TRANSPILER.

STATISTICS_LEVEL STATISTICS_LEVEL
TIME_ZONE

Pour plus d'informations sur TIME_ZONE, reportez-vous à Référence de langage SQL Oracle Database.

XML_PARAMS

Ce paramètre est applicable uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à XML_PARAMS.

Le tableau suivant présente les paramètres d'initialisation modifiables uniquement avec ALTER SYSTEM.

Modifiable uniquement avec ALTER SYSTEM Informations supplémentaires
BLANK_TRIMMING BLANK_TRIMMING
FIXED_DATE FIXED_DATE
JOB_QUEUE_PROCESSES JOB_QUEUE_PROCESSES
LOCKDOWN_ERRORS

Pour plus de détails, reportez-vous à LOCKDOWN_ERRORS.

MAX_IDLE_BLOCKER_TIME MAX_IDLE_BLOCKER_TIME

Avec une valeur supérieure à 5, le paramètre agit comme s'il était défini sur 5.

MAX_IDLE_TIME MAX_IDLE_TIME

Par défaut, MAX_IDLE_TIME est défini sur 1440. Lorsque la valeur MAX_IDLE_TIME est définie sur 0 ou sur une valeur supérieure à 1440, le paramètre agit comme s'il était défini sur 1440.

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

Le tableau suivant présente les paramètres d'initialisation modifiables avec ALTER SESSION ou ALTER SYSTEM.

Modifiable avec ALTER SESSION ou ALTER SYSTEM Informations supplémentaires
APPROX_FOR_AGGREGATION APPROX_FOR_AGGREGATION
APPROX_FOR_COUNT_DISTINCT APPROX_FOR_COUNT_DISTINCT
APPROX_FOR_PERCENTILE APPROX_FOR_PERCENTILE
CLIENT_PREFETCH_ROWS

Reportez-vous à la page CLIENT_PREFETCH_ROWS

CONTAINER_DATA CONTAINER_DATA
CURSOR_SHARING CURSOR_SHARING
DDL_LOCK_TIMEOUT DDL_LOCK_TIMEOUT
GROUP_BY_POSITION  
GROUP_BY_POSITION_ENABLED

Ce paramètre est applicable uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à la page GROUP_BY_POSITION_ENABLED

HEAT_MAP HEAT_MAP
IGNORE_SESSION_SET_PARAM_ERRORS IGNORE_SESSION_SET_PARAM_ERRORS
LDAP_DIRECTORY_ACCESS LDAP_DIRECTORY_ACCESS
LOAD_WITHOUT_COMPILE  
MAX_STRING_SIZE

Pour plus d'informations, reportez-vous à Types de données.

NLS_CALENDAR NLS_CALENDAR
NLS_COMP NLS_COMP
NLS_CURRENCY NLS_CURRENCY
NLS_DATE_FORMAT NLS_DATE_FORMAT
NLS_DATE_LANGUAGE NLS_DATE_LANGUAGE
NLS_DUAL_CURRENCY NLS_DUAL_CURRENCY
NLS_ISO_CURRENCY NLS_ISO_CURRENCY
NLS_LANGUAGE NLS_LANGUAGE
NLS_LENGTH_SEMANTICS NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP NLS_NCHAR_CONV_EXCP
NLS_NUMERIC_CHARACTERS NLS_NUMERIC_CHARACTERS
NLS_SORT NLS_SORT
NLS_TERRITORY NLS_TERRITORY
NLS_TIME_FORMAT  
NLS_TIME_TZ_FORMAT  
NLS_TIMESTAMP_FORMAT NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT NLS_TIMESTAMP_TZ_FORMAT
OPTIMIZER_CAPTURE_SQL_QUARANTINE OPTIMIZER_CAPTURE_SQL_QUARANTINE
OPTIMIZER_IGNORE_HINTS

Pour plus d'informations sur OPTIMIZER_IGNORE_HINTS, reportez-vous à Gestion des statistiques de l'optimiseur sur Autonomous Database.

OPTIMIZER_IGNORE_PARALLEL_HINTS

Pour plus d'informations sur OPTIMIZER_IGNORE_PARALLEL_HINTS, reportez-vous à Gestion des statistiques de l'optimiseur sur Autonomous Database.

OPTIMIZER_MODE OPTIMIZER_MODE
OPTIMIZER_REAL_TIME_STATISTICS OPTIMIZER_REAL_TIME_STATISTICS
OPTIMIZER_USE_SQL_QUARANTINE OPTIMIZER_USE_SQL_QUARANTINE
PLSCOPE_SETTINGS PLSCOPE_SETTINGS
PLSQL_CCFLAGS PLSQL_CCFLAGS
PLSQL_DEBUG PLSQL_DEBUG
PLSQL_IMPLICIT_CONVERSION_BOOL

Ce paramètre s'applique uniquement à Oracle Database 23ai. Reportez-vous à la page PLSQL_IMPLICIT_CONVERSION_BOOL

PLSQL_OPTIMIZE_LEVEL PLSQL_OPTIMIZE_LEVEL
PLSQL_WARNINGS PLSQL_WARNINGS
QUERY_REWRITE_INTEGRITY QUERY_REWRITE_INTEGRITY
RECYCLEBIN CORBEILLE
REMOTE_DEPENDENCIES_MODE REMOTE_DEPENDENCIES_MODE
RESULT_CACHE_INTEGRITY

Reportez-vous à la page RESULT_CACHE_INTEGRITY

RESULT_CACHE_MODE

Reportez-vous à la page RESULT_CACHE_MODE

SKIP_UNUSABLE_INEDEXES

SKIP_UNUSABLE_INDEXES

SQL_HISTORY_ENABLED

Ce paramètre est disponible à partir d'Oracle Database 23ai. Pour plus d'informations, reportez-vous à SQL_HISTORY_ENABLED.

SYSDATE_AT_DBTIMEZONE

Reportez-vous à SYSDATE_AT_DBTIMEZONE Sélection d'un fuseau horaire pour SYSDATE sur Autonomous Database.

XML_CLIENT_SIDE_DECODING

Reportez-vous à la page XML_CLIENT_SIDE_DECODING

Pour plus d'informations sur les paramètres d'initialisation, reportez-vous à Référence Oracle Database.

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERROR active ou désactiver le traitement spécial pour les packages PL/SQL avec conservation de statut exécutés dans une session.

Propriété Description
Type de paramètre Boolean
Valeur par défaut FALSE
Modifiable ALTER SYSTEM
Plage de valeurs TRUE | FALSE

SESSION_EXIT_ON_PACKAGE_STATE_ERROR indique le traitement d'un package PL/SQL avec conservation de statut exécuté dans une session. Lorsqu'un package de ce type fait l'objet d'une modification, par exemple lors d'une maintenance planifiée pour des objets fournis par Oracle, les sessions qui ont une instanciation active du package reçoivent l'erreur suivante lorsqu'elles tentent d'exécuter le package :

ORA-4068 existing state of package has been discarded

Cependant, le code d'application qui reçoit l'erreur ORA-4068 peut ne pas être équipé pour gérer cette erreur avec sa logique de nouvelle tentative.

La définition de SESSION_EXIT_ON_PACKAGE_STATE_ERROR sur TRUE fournit un traitement différent pour ce cas. Lorsque SESSION_EXIT_ON_PACKAGE_STATE_ERROR est défini sur TRUE, au lieu de simplement générer l'erreur ORA-4068 lorsque l'état du package est rejeté, la session se ferme immédiatement. Cela peut être avantageux car de nombreuses applications peuvent gérer la terminaison de la session en rétablissant automatiquement et de manière transparente la connexion.

SYSDATE_AT_DBTIMEZONE Sélection d'un fuseau horaire pour SYSDATE sur Autonomous Database

SYSDATE_AT_DBTIMEZONE active un traitement spécial dans une session pour la valeur de date et d'heure renvoyée dans les appels vers SYSDATE et SYSTIMESTAMP.

En fonction de la valeur de SYSDATE_AT_DBTIMEZONE, vous pouvez voir la date et l'heure selon le fuseau horaire d'Autonomous Database par défaut, le temps universel coordonné (UTC), ou le fuseau horaire défini dans la base de données.

Propriété Description
Type de paramètre Boolean
Valeur par défaut FALSE
Modifiable ALTER SESSION, ALTER SYSTEM
Plage de valeurs TRUE | FALSE

Fuseau horaire d'Autonomous Database par défaut

Le fuseau horaire d'Autonomous Database par défaut est le temps universel coordonné (UTC). Par défaut, les appels vers SYSDATE et SYSTIMESTAMP retournent la date et l'heure dans UTC.

Pour modifier le fuseau horaire de la base de données, vous pouvez exécuter l'instruction suivante.

Cet exemple définit le fuseau horaire de la base de données sur UTC-5.

ALTER DATABASE SET TIME_ZONE='-05:00';

Cet exemple définit le fuseau horaire de la base de données pour la côte est des Etats-Unis : America/New_York et l'heure est automatiquement ajustée au niveau des commutateurs d'heure d'été :

ALTER DATABASE SET TIME_ZONE='America/New_York';
Remarque

Vous devez redémarrer l'instance Autonomous Database pour que la modification soit appliquée.

Une fois que vous avez défini le fuseau horaire de la base de données, par défaut, SYSDATE et SYSTIMESTAMP continuent à renvoyer la date et l'heure au format UTC (SYSDATE_AT_DBTIMEZONE est défini sur FALSE par défaut). Si vous définissez SYSDATE_AT_DBTIMEZONE sur TRUE dans une session, SYSDATE et SYSTIMESTAMP retournent le fuseau horaire de la base de données.

Pour plus d'informations sur l'utilisation de la clause SET TIME_ZONE avec ALTER DATABASE, reportez-vous à Définition du fuseau horaire de la base de données dans Oracle Database 19c ou Oracle Database 23ai.

Utilisation de SYSDATE_AT_DBTIMEZONE dans une session

Lorsque SYSDATE_AT_DBTIMEZONE est défini sur FALSE dans une session, les appels vers SYSDATE et SYSTIMESTAMP retournent des valeurs en fonction du fuseau horaire d'Autonomous Database par défaut, le temps universel coordonné (UTC).

Lorsque SYSDATE_AT_DBTIMEZONE est défini sur TRUE dans une session, les appels vers SYSDATE ou SYSTIMESTAMP retournent la date et l'heure en fonction du fuseau horaire de la base de données.

Remarque

La définition de SYSDATE_AT_DBTIMEZONE sur TRUE concerne uniquement l'utilisation de SYSDATE et de SYSTIMESTAMP en tant qu'opérateurs dans le code SQL d'application (par exemple, dans les requêtes, les opérations DML et CTAS). Lorsque vous utilisez ce paramètre, il est recommandé que le fuseau horaire du client/de la session corresponde au fuseau horaire de la base de données.

Exemple

L'exemple suivant renvoie les dates et heures pour deux fuseaux horaires différents, en fonction de la valeur du paramètre SYSDATE_AT_DBTIMEZONE :

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIMEZONE
_____________
-05:00

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=FALSE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
______________________________________
27-JAN-22 06.59.45.708082000 PM GMT

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
_________________________________________
27-JAN-22 02.14.47.578946000 PM -05:00 
Remarque

Lorsqu'une requête SYSDATE ou SYSTIMESTAMP est exécutée dans la feuille de calcul SQL de Database Actions, la valeur d'heure et de date renvoyée est au format UTC (lorsque le paramètre SYSDATE_AT_DBTIMEZONE est défini sur TRUE ou FALSE). Pour obtenir le fuseau horaire de la base de données lors de l'utilisation de Database Actions, utilisez TO_CHAR() comme suit :

SQL> SELECT TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SS TZH":"TZM') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SSTZH":"TZM')
___________________________________________________________
2022-01-27T14:15:00 -05:00

CLIENT_PREFETCH_ROWS

Définissez le paramètre CLIENT_PREFETCH_ROWS pour permettre aux clients de réduire le nombre d'aller-retours requis lors de l'extraction des lignes d'un ensemble de résultats de requête.

CLIENT_PREFETCH_ROWS indique le nombre de lignes devant être pré-extraites par le pilote client Oracle, sans apporter de modifications à l'application client. Le pilote client met en mémoire tampon les lignes pré-extraites après chaque exécution réussie d'une requête et pour chaque demande d'extraction ultérieure envoyée à la base de données.

Ce paramètre s'applique uniquement aux clients qui utilisent Oracle Call Interface (OCI) pour se connecter à la base de données.

Ce paramètre s'applique uniquement avec Oracle Instant Client/Oracle Database Client 19.17 (ou version ultérieure) et 21.8 (ou version ultérieure), pour toutes les plates-formes.

Propriété Description
Type de paramètre Entier
Syntaxe CLIENT_PREFETCH_ROWS = integer
Valeur par défaut 0 (seuls les paramètres côté client s'appliquent)
Modifiable ALTER SYSTEM, ALTER SESSION
Plage de valeurs 0 à UB4MAXVAL (4294967295)
Basique Non

Le paramètre CLIENT_PREFETCH_ROWS peut être défini avec ALTER SESSION ou ALTER SYSTEM. Si la valeur du paramètre change à l'aide de ALTER SESSION, la nouvelle valeur prend effet pour cette session spécifique lors des extractions d'ensemble de résultats suivantes. Si la valeur du paramètre change à l'aide de ALTER SYSTEM, la nouvelle valeur prend effet pour les instructions exécutées sur les connexions créées après la commande ALTER SYSTEM.

Par exemple, si CLIENT_PREFETCH_ROWS est défini sur 100 et qu'une application client demande d'extraire 10 lignes, un total de 110 lignes est renvoyé au pilote client. Les 10 premières lignes sur les 110 lignes sont données à l'application et le pilote client met en mémoire tampon en interne les 100 lignes restantes. Les 10 lignes suivantes sont extraites de l'application client, chacune avec 10 lignes par itération d'extraction pouvant être exécutée à partir des 100 lignes mises en mémoire tampon en interne par le pilote client. Ce processus réduit le nombre d'aller-retours réseau requis depuis et vers la base de données. Dans cet exemple, lors de la 11e extraction, un nouvel aller-retour réseau est engagé et la base de données renvoie le lot suivant de 110 lignes, tant que l'ensemble de résultats n'est pas épuisé et que le cycle se répète.

Remarques relatives à la définition de CLIENT_PREFETCH_ROWS :

  • Lorsque CLIENT_PREFETCH_ROWS est défini sur une valeur différente de zéro, sa valeur est prioritaire sur la valeur OCI_ATTR_PREFETCH_ROWS par défaut pour le nombre de lignes de pré-extraction.

  • Si la valeur OCI_ATTR_PREFETCH_ROWS est définie sur une valeur autre que celle par défaut, la valeur CLIENT_PREFETCH_ROWS est ignorée pour le nombre de lignes de pré-extraction.

  • Utilisation de CLIENT_PREFETCH_ROWS avec OCIAttrSet() :

    OCI_ATTR_PREFETCH_ROWS définit le nombre de lignes de niveau supérieur à pré-extraire. La valeur par défaut est 1 ligne. Toutefois, si CLIENT_PREFETCH_ROWS est défini, le nombre de lignes de niveau supérieur à pré-extraire est déterminé par la priorité suivante :

    1. Si vous définissez l'attribut OCI_ATTR_PREFETCH_ROWS à l'aide de la fonction OCIAttrSet() ou de oraaccess.xml en tant que valeur '1', la valeur du paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS est prioritaire et détermine le nombre de lignes de niveau supérieur à pré-extraire.

    2. Si vous définissez l'attribut OCI_ATTR_PREFETCH_ROWS à l'aide de la fonction OCIAttrSet() ou de oraaccess.xml en tant que valeur 'x' autre que 1, le nombre de lignes de niveau supérieur 'x' sera pré-extrait et le paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS sera ignoré.

    3. Si vous ne définissez pas de valeur OCI_ATTR_PREFETCH_ROWS à l'aide de OCIAttrSet() ou oraaccess.xml, la valeur du paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS est prioritaire et détermine le nombre de lignes de niveau supérieur à pré-extraire.

  • Utilisation de CLIENT_PREFETCH_ROWS avec OCIAttrGet() :

    La fonction OCIAttrGet() renvoie la valeur de ligne de pré-extraction effective définie à partir de OCI_ATTR_PREFETCH_ROWS, oraaccess.xml et le paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS. Si la valeur OCI_ATTR_PREFETCH_MEMORY est définie, la valeur renvoyée par OCIAttrGet() peut ne pas être la valeur de ligne de pré-extraction finale et peut être limitée au nombre maximal de lignes autorisé par la valeur de mémoire indiquée par l'attribut OCI_ATTR_PREFETCH_MEMORY.

Voir aussi :

JOB_QUEUE_PROCESSES

Définissez le paramètre JOB_QUEUE_PROCESSES pour indiquer le nombre maximal de processus de travail pouvant être créés pour exécuter des travaux Oracle Scheduler (DBMS_SCHEDULER).

La valeur 0 désactive les travaux du planificateur non fournis par Oracle.

Propriété Description
Type de paramètre Entier
Syntaxe JOB_QUEUE_PROCESSES = integer
Valeur par défaut

La valeur par défaut dépend du nombre d'ECPU (nombre d'OCPU si votre base de données utilise des OCPU) et du paramètre de redimensionnement automatique d'ECPU (redimensionnement automatique d'OCPU si votre base de données utilise des OCPU). Pour plus d'informations, reportez-vous au tableau suivant.

Modifiable ALTER SYSTEM
Plage de valeurs

Valeur minimale : 0

La valeur maximale dépend du nombre d'ECPU (nombre d'OCPU si votre base de données utilise des OCPU) et du paramètre de redimensionnement automatique d'ECPU (redimensionnement automatique d'OCPU si votre base de données utilise des OCPU), comme indiqué dans le tableau suivant.

Les valeurs par défaut et maximales pour JOB_QUEUE_PROCESSES diffèrent en fonction du modèle de calcul que vous utilisez. Pour plus d'informations, reportez-vous à Modèles de calcul dans Autonomous Database.

Modèle de calcul Valeur par défaut et valeur maximale avec mise à l'échelle automatique désactivée Valeur par défaut et valeur maximale avec mise à l'échelle automatique activée
ECPU 7,5 x nombre d'ECPU 22,5 x nombre d'ECPU
OCPU 30 x nombre d'OCPU 90 x nombre d'OCPU

Le coordinateur de travaux et les processus de travail Oracle Scheduler sont contrôlés par le paramètre JOB_QUEUE_PROCESSES. Le nombre réel de processus actifs créés pour les travaux Oracle Scheduler est réglé automatiquement par le planificateur en fonction de plusieurs facteurs, notamment les ressources disponibles, les paramètres Resource Manager et les travaux en cours d'exécution.

La valeur par défaut de JOB_QUEUE_PROCESSES fournit un compromis entre la qualité de service des applications et l'utilisation raisonnable des ressources système. Cependant, il est possible que la valeur par défaut ne corresponde pas à tous les environnements.

La définition de la valeur de JOB_QUEUE_PROCESSES sur 0 désactive les travaux du planificateur non fournis par Oracle. Lorsque JOB_QUEUE_PROCESSES est défini sur 0, cela ne désactive aucun travail interne pour les utilisateurs fournis par Oracle (les travaux liés au service exécutés par les utilisateurs fournis par Oracle continuent d'être programmés).

Les utilisateurs fournis par Oracle sont des utilisateurs marqués comme ORACLE_MAINTAINED avec la valeur Y. Les utilisateurs non fournis par Oracle sont des utilisateurs marqués comme ORACLE_MAINTAINED avec la valeur N.

Pour plus d'informations, reportez-vous à ALL_USERS.

LOCKDOWN_ERRORS

Définissez le paramètre LOCKDOWN_ERRORS pour contrôler si les erreurs de profil de verrouillage Autonomous Database sont générées ou ignorées.

Autonomous Database utilise des profils de verrouillage pour restreindre certaines fonctionnalités et fonctionnalités de base de données. Par défaut, la base de données génère une erreur chaque fois que vous tentez d'exécuter une commande SQL restreinte par le profil de verrouillage Autonomous Database. Le paramètre LOCKDOWN_ERRORS vous permet de supprimer les erreurs de profil de verrouillage. De plus, lorsque LOCKDOWN_ERRORS est défini sur la valeur IGNORE, en ignorant une erreur, la base de données consigne les détails relatifs à l'instruction SQL, à l'utilisateur et à l'horodatage de la commande.

Remarque

Évaluez soigneusement vos scripts existants avant de définir la valeur de ce paramètre sur IGNORE. Lorsque vous définissez la valeur sur IGNORE, les scripts existants que vous utilisez ne génèrent plus d'erreurs de verrouillage.

Vous pouvez utiliser la vue DBA_LOCKDOWN_ERRORS pour obtenir des informations sur les erreurs de profil de verrouillage. Pour plus d'informations, reportez-vous à Vue Erreurs de verrouillage.

Propriété Description
Type de paramètre Chaîne
Syntaxe LOCKDOWN_ERRORS = IGNORE | RAISE
Valeur par défaut

La valeur par défaut est RAISE.

Modifiable ALTER SYSTEM
Valeurs valides

RAISE : générer des erreurs de profil de verrouillage.

IGNORE : supprimer les erreurs de profil de verrouillage.

RESULT_CACHE_INTEGRITY

Définissez le paramètre RESULT_CACHE_INTEGRITY pour indiquer si le cache de résultats prend en compte les requêtes utilisant éventuellement des structures non déterministes comme candidats à la mise en cache des résultats.

Propriété Description
Type de paramètre Chaîne
Syntaxe RESULT_CACHE_INTEGRITY = { ENFORCED | TRUSTED }
Valeur par défaut

Pour Autonomous Database, la valeur par défaut est la suivante : ENFORCED

Modifiable ALTER SYSTEM

Valeurs

  • ENFORCED : quel que soit le paramètre RESULT_CACHE_MODE ou les conseils indiqués, seules les structures déterministes sont éligibles à la mise en cache des résultats. Par exemple, les requêtes utilisant des fonctions PL/SQL qui ne sont pas déclarées comme déterministes ne sont jamais mises en mémoire cache (sauf si les fonctions sont déclarées comme déterministes, les résultats de requête avec ces fonctions ne sont pas mis en mémoire cache).

  • TRUSTED : la base de données respecte le paramètre RESULT_CACHE_MODE et les conseils spécifiés, et prend en compte les requêtes utilisant éventuellement des structures non déterministes comme candidats à la mise en cache des résultats. Par exemple, les requêtes utilisant des fonctions PL/SQL qui ne sont pas déclarées comme déterministes peuvent être mises en mémoire cache. Toutefois, les résultats connus comme non déterministes ne sont pas mis en mémoire cache (par exemple, SYSDATE ou des structures impliquant SYSDATE).

RESULT_CACHE_MODE

Définissez le paramètre RESULT_CACHE_MODE pour indiquer les requêtes pouvant stocker les ensembles de résultats dans le cache de résultats. Seuls les plans d'exécution d'interrogation avec l'opérateur de cache de résultats tentent de lire ou d'écrire dans le cache de résultats.

Propriété Description
Type de paramètre Chaîne (String)
Syntaxe RESULT_CACHE_MODE = { MANUAL | MANUAL_TEMP | FORCE | FORCE_TEMP }
Valeur par défaut

Pour Autonomous Database avec le type de charge globale défini sur Data Warehouse : FORCE

Pour les types de charge globale Traitement des transactions, JSON ou APEX : MANUAL

Modifiable ALTER SESSION, ALTER SYSTEM

Pour plus d'informations, reportez-vous à RESULT_CACHE_MODE.

Utiliser les conseils SQL Result Cache

Utilisez les conseils sur le cache de résultats au niveau de l'application pour contrôler le comportement de la mise en cache. Les conseils sur le cache de résultats SQL sont prioritaires sur le mode de cache de résultats et les annotations de table de cache de résultats.

Vous pouvez utiliser les conseils SQL Result Cache comme suit :

  • Utilisation du conseil RESULT_CACHE

  • Utilisation du conseil NO_RESULT_CACHE

  • Utilisation du conseil RESULT_CACHE dans les vues

Utilisation du conseil RESULT_CACHE

Lorsque le mode de cache des résultats est MANUAL, le conseil /*+ RESULT_CACHE */ demande à la base de données de mettre en cache les résultats d'un bloc de requête et d'utiliser les résultats mis en cache lors des exécutions ultérieures.

Pour plus d'informations, reportez-vous à Utilisation du conseil RESULT_CACHE et à Conseil RESULT_CACHE.

Utilisation du conseil NO_RESULT_CACHE

Le conseil /*+ NO_RESULT_CACHE */ indique à la base de données de ne pas mettre les résultats en cache dans les caches de résultats du serveur ou du client.

Pour plus d'informations, reportez-vous à Utilisation du conseil NO_RESULT_CACHE et à Conseil RESULT_CACHE.

Utilisation du conseil RESULT_CACHE dans les vues

Le conseil RESULT_CACHE s'applique uniquement au bloc de requête dans lequel le conseil est indiqué. Si le conseil n'est spécifié que dans une vue, seuls ces résultats sont mis en cache.

Pour plus d'informations, reportez-vous à Utilisation du conseil RESULT_CACHE dans les vues et à Conseil RESULT_CACHE.