Fonctionnalités de hautes performances dans Autonomous Database on Dedicated Exadata Infrastructure
Cet article décrit les principales fonctionnalités de réglage des performances dans Autonomous Database on Dedicated Exadata Infrastructure.
Notez que tout au long de cette section, le terme "vous" est généralement utilisé pour désigner tout utilisateur de votre organisation qui a la responsabilité d'effectuer certaines tâches. Dans certains cas, c'est le DBA de l'application, dans d'autres, c'est le développeur de l'application.
Autonomous Database inclut plusieurs fonctionnalités qui surveillent, analysent et optimisent automatiquement les performances de votre base de données. Pour obtenir la liste complète des fonctionnalités de réglage SQL et de gestion des performances d'Oracle Autonomous Database, ainsi que des instructions sur leur utilisation, reportez-vous au Guide de réglage SQL Oracle Database 19c ou au Guide de réglage SQL Oracle Database 23ai.
Vous pouvez voir un classement général des principales fonctionnalités de réglage des performances d'Autonomous Database décrites ci-dessous.
Conseil :
Dans l'image suivante, vous pouvez cliquer sur la fonctionnalité que vous souhaitez explorer plus avant.Services de base de données prédéfinis
La méthode de connexion de votre application à votre base de données et de codage des appels SQL vers la base de données détermine les performances globales des opérations de traitement des transactions et de génération de rapports de l'application.
Conseil :
Vérifiez les caractéristiques clés des services de base de données prédéfinis et la table qui compare les différents ensembles de services de base de données en fonction de ces caractéristiques pour déterminer le service de base de données le plus adapté aux exigences de performances de votre application.Pools de connexions
Lorsque vous établissez des connexions à votre instance Autonomous Database, vous pouvez utiliser des pools de connexions pour réduire la surcharge de performances liée à la création et à la destruction répétées de connexions individuelles. Il s'agit d'un autre facteur qui a un impact important sur les performances de l'interaction de votre application avec la base de données.
Très souvent, l'utilisation de pools de connexions est envisagée uniquement lors de la conception ou de l'amélioration d'une application afin d'assurer une disponibilité continue. Toutefois, l'utilisation de pools de connexions au lieu de connexions individuelles peut profiter à presque toutes les applications de traitement des transactions. Un pool de connexions présente les avantages suivants :
- Réduit le nombre de créations d'objet de connexion
- Favorise la réutilisation des objets de connexion
- Accélère le processus d'obtention d'une connexion
- Contrôle la quantité de ressources consacrées au maintien des connexions
- Réduit l'effort de codage requis pour gérer manuellement les objets de connexion
Fonctionnalités de connexion à usage spécial
-
La fonctionnalité de balisage de colocalisation est utile dans certaines applications de traitement des transactions. Si votre application établit des connexions de façon répétée au même service de base de données, le balisage de colocalisation permet de diriger toutes ces connexions vers la même instance de base de données, en ignorant le traitement d'équilibrage de charge effectué en principe côté base de données des connexions. Pour plus d'informations, reportez-vous à COLOCATION_TAG des connexions client dans Oracle Database 19c ou Oracle Database 23ai.
-
La configuration de serveur partagé est une autre fonctionnalité prise en charge par Autonomous Database pour maintenir les applications héritées conçues sans pool de connexions. Avec l'architecture de serveur partagé, le serveur de base de données permet à de nombreux processus client de partager très peu de processus serveur. Cela augmente le nombre d'utilisateurs que l'application peut prendre en charge. L'utilisation de l'architecture de serveur partagé pour ces applications héritées leur permet d'évoluer sans apporter de modifications à l'application elle-même.
Vous pouvez activer les connexions de serveur partagé lors du provisionnement d'une base de données Conteneur Autonomous et ce paramètre s'applique à toutes les bases de données qu'elle contient. Pour obtenir des instructions, reportez-vous à Création d'une base de données Conteneur Autonomous.
Reportez-vous également au guide de l'administrateur Oracle Database 19c Net Services ou au guide de l'administrateur Oracle Database 23ai Net Services pour obtenir des informations détaillées sur les serveurs partagés, notamment sur les fonctionnalités telles que le multiplexage de sessions.
Une fois la connexion au serveur partagé activée pour la base de données Conteneur Autonomous, il n'est pas nécessaire de modifier la chaîne de connexion. La configuration par défaut est définie sur Dédié.
Remarques :
Vous ne pouvez pas désactiver un serveur partagé pour une instance Autonomous Database spécifique créée sous une base de données Conteneur Autonomous sur laquelle le serveur partagé est activé, et vous ne pouvez pas utiliser de connexion dédiée pour les instances Autonomous Database créées sous une base de données Conteneur Autonomous sur laquelle le serveur partagé est activé.
Fonctionnalités de réglage des performances SQL
Une application de qualité commence par un code SQL bien écrit. Oracle Autonomous Database offre de nombreuses fonctionnalités qui permettent de créer des applications hautes performances, et de valider votre code SQL et PL/SQL. Certaines de ces fonctionnalités sont répertoriées ci-dessous :
- Indexation automatique
- Statistiques et conseils d'optimisation
- Résolution automatique des régressions de plan SQL
- Mise en quarantaine automatique des instructions SQL bloquantes
- SQL Plan Management
- Ensembles de réglages SQL
- SQL Trace
Au fur et à mesure que vous développez votre application, vous pouvez rapidement apprendre comment ces fonctionnalités affectent le code SQL que vous écrivez, et ainsi améliorer votre code à l'aide de la feuille de calcul SQL fournie par Oracle Database Actions (intégrée à votre instance Autonomous Database) et Oracle SQL Developer (une application gratuite que vous installez sur votre système de développement).
Fonction de trace SQL
Lorsqu'une opération d'application prend plus de temps que prévu, obtenir une trace de toutes les instructions SQL exécutées dans le cadre de cette opération avec des détails tels que le temps passé par cette instruction SQL dans les phases d'analyse, d'exécution et d'extraction vous aidera à identifier et à résoudre la cause du problème de performances. Pour ce faire, vous pouvez utiliser la fonction de trace SQL sur une instance Autonomous Database.
La fonction de trace SQL est désactivée par défaut dans Autonomous Database. Vous devez l'activer pour commencer à collecter les données de trace SQL. Pour obtenir des instructions détaillées sur l'activation et l'utilisation de la fonction de trace SQL, reportez-vous à Utilisation de la fonction de trace SQL sur Autonomous Database.
Statistiques de l'optimiseur
Autonomous Database collecte automatiquement les statistiques d'optimiseur afin que vous n'ayez pas à effectuer cette tâche manuellement et pour veiller à ce que vos statistiques soient à jour. La collecte automatique des statistiques est activée dans Autonomous Database et exécutée dans une fenêtre de maintenance standard.
Remarques :
Pour plus d'informations sur la durée des fenêtres de maintenance et la collecte automatique des statistiques d'optimisation, reportez-vous au guide de l'administrateur Oracle Database 19c ou au guide de l'administrateur Oracle Database 23ai.
Pour plus d'informations sur les statistiques d'optimiseur, reportez-vous au guide de réglage SQL Oracle Database 19c ou au guide de réglage SQL Oracle Database 23ai.
Conseils de l'optimiseur
Les conseils pour l'optimiseur sont des commentaires spéciaux dans une instruction SQL qui transmettent des directives à l'optimiseur. L'optimiseur s'appuie sur les conseils afin de choisir un plan d'exécution pour l'instruction, sauf si une condition l'en empêche.
PARALLEL
diffèrent en fonction de la charge globale :
-
Autonomous Data Warehouse : Autonomous Database avec Data Warehouse ignore les conseils pour l'optimiseur et les conseils
PARALLEL
dans les instructions SQL par défaut.Si votre application dépend des conseils, vous pouvez activer les conseils pour l'optimiseur en définissant le paramètre
OPTIMIZER_IGNORE_HINTS
surFALSE
au niveau de la session ou du système à l'aide deALTER SESSION
ou deALTER SYSTEM
.Par exemple, la commande suivante active les conseils dans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=FALSE;
Vous pouvez également activer les conseils
PARALLEL
dans vos instructions SQL en définissantOPTIMIZER_IGNORE_PARALLEL_HINTS
surFALSE
au niveau de la session ou du système à l'aide deALTER SESSION
ou deALTER SYSTEM
.Par exemple, la commande suivante active les conseilsPARALLEL
dans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE;
-
Autonomous Transaction Processing : Autonomous Database met en place des conseils pour l'optimiseur et des conseils
PARALLEL
dans les instructions SQL par défaut.Vous pouvez désactiver les conseils pour l'optimiseur en définissant le paramètre
OPTIMIZER_IGNORE_HINTS
surTRUE
au niveau de la session ou du système à l'aide deALTER SESSION
ou deALTER SYSTEM
.Par exemple, la commande suivante désactive les conseils dans votre session :
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=TRUE;
Vous pouvez également désactiver les conseils
PARALLEL
dans vos instructions SQL en définissantOPTIMIZER_IGNORE_PARALLEL_HINTS
surTRUE
au niveau de la session ou du système à l'aide deALTER SESSION
ou deALTER SYSTEM
.Par exemple, la commande suivante active les conseils
PARALLEL
dans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;
Indexation automatique
L'indexation automatique automatise les tâches de gestion des index dans Autonomous Database. L'indexation automatique est désactivée par défaut dans Autonomous Database.
La création manuelle d'index requiert une connaissance approfondie du modèle de données, de l'application et de la distribution des données. Par le passé, les DBA étaient chargés de déterminer les index à créer, mais parfois, ils ne révisaient pas leurs choix ou ne tenaient pas à jour les index par la suite, au fil des changements de conditions. En conséquence, des opportunités d'amélioration se perdaient et l'utilisation d'index inutiles pouvait dégrader les performances.
La fonctionnalité d'indexation automatique d'Autonomous Database surveille la charge globale de l'application, et crée et tient à jour automatiquement les index.
Conseil :
Pour commencer par tester la procédure ci-après, suivez l'exercice 14 sur l'indexation automatique dans l'atelier Oracle Autonomous Database Dedicated pour les développeurs et les utilisateurs de base de données.- Utilisez la procédure
DBMS_AUTO_INDEX.CONFIGURE
pour activer l'indexation automatique. Par exemple, l'exécution de l'instruction ci-dessous active l'indexation automatique dans une base de données et crée des index automatiques en tant qu'index visibles, afin qu'ils puissent être utilisés dans les instructions SQL.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');
- Utilisez le package
DBMS_AUTO_INDEX
pour générer des rapports sur la tâche automatique et définir les préférences d'indexation automatique.Remarques :
Lorsque l'indexation automatique est activée, la compression des index automatiques est activée par défaut.
DBMS_AUTO_INDEX.CONFIGURE
pour désactiver l'indexation automatique. Par exemple, l'exécution de l'instruction ci-dessous désactive l'indexation automatique dans une base de données afin qu'aucun nouvel index automatique ne soit créé. Toutefois, les index automatiques existants restent activés.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');
Pour plus d'informations, reportez-vous à Gestion des index automatiques dans le Guide de l'administrateur Oracle Database 19c ou au Guide de l'administrateur Oracle Database 23ai.
Inclusion rapide
L'inclusion rapide optimise le traitement des insertions de données monolignes à fréquence élevée dans une base de données. L'inclusion rapide utilise le pool LARGE POOL pour mettre en mémoire tampon les insertions avant de les écrire sur le disque afin d'améliorer les performances d'insertion de données.
L'objectif de Fast-ingest est de prendre en charge les applications qui génèrent de nombreuses données d'information qui ont une valeur importante dans l'ensemble, mais qui ne nécessitent pas nécessairement des garanties ACID complètes. De nombreuses applications de l'Internet of Things (IoT) ont une charge de travail de type "incendie et oubli" rapide, telles que les données des capteurs, les données des compteurs intelligents ou même les caméras de trafic. Pour ces applications, les données peuvent être collectées et écrites dans la base de données en volumes importants pour une analyse ultérieure.
L'inclusion rapide est très différente du traitement normal des transactions Oracle Database où les données sont journalisées et ne sont jamais perdues une fois "écrites" dans la base de données (c'est-à-dire validées). Afin d'atteindre le débit d'inclusion maximal, les mécanismes de transaction Oracle normaux sont ignorés. Il incombe à l'application de vérifier que toutes les données ont bien été écrites dans la base de données. Des API spéciales peuvent être appelées pour vérifier si les données ont été écrites dans la base de données.
Pour obtenir un aperçu de l'inclusion rapide et des étapes nécessaires à l'utilisation de cette fonctionnalité, reportez-vous à Utilisation de l'inclusion rapide dans le Guide de réglage des performances Oracle Database 19c ou le Guide de réglage des performances Oracle Database 23ai.
-
Autoriser l'optimiseur à utiliser des conseils : définissez le paramètre
optimizer_ignore_hints
surFALSE
au niveau de la session ou du système, selon le cas.Selon le type de charge globale Autonomous Database,
optimizer_ignore_hints
peut être défini par défaut surFALSE
au niveau du système. Pour plus d'informations, reportez-vous à Statistiques d'optimiseur. - Création d'une table pour l'inclusion rapide : reportez-vous au Guide de réglage des performances Oracle Database 19c ou au Guide de réglage des performances Oracle Database 23ai pour connaître les limites de l'inclusion rapide pour les tables (les tables présentant les caractéristiques indiquées ne peuvent pas utiliser l'inclusion rapide).
Classes de travail prédéfinies avec Oracle Scheduler
Autonomous Database inclut des valeurs job_class
prédéfinies à utiliser avec Oracle Scheduler. Ces classes de travail vous permettent de regrouper les travaux qui partagent des caractéristiques et un comportement communs dans des entités plus volumineuses afin de pouvoir établir des priorités parmi ces classes en contrôlant les ressources allouées à chaque classe.
Avec les classes de travail prédéfinies, vous pouvez vous assurer que vos travaux critiques ont la priorité et disposent de suffisamment de ressources pour être terminés. Par exemple, pour qu'un projet critique charge un entrepôt de données, vous pouvez combiner tous les travaux d'entreposage de données dans une classe et les classer par ordre de priorité par rapport aux autres travaux en allouant un pourcentage élevé des ressources disponibles. Vous pouvez également affecter des priorités relatives aux travaux d'une classe de travail.
Les valeurs job_class
prédéfinies, TPURGENT
, TP
, HIGH
, MEDIUM
et LOW
, sont mises en correspondance avec les groupes de destinataires correspondants. Ces classes de travail permettent d'indiquer le groupe de destinataires dans lequel un travail est exécuté avec DBMS_SCHEDULER.CREATE_JOB
.
La procédure DBMS_SCHEDULER.CREATE_JOB
prend en charge les types de travail PLSQL_BLOCK
et STORED_PROCEDURE
pour le paramètre job_type
dans Autonomous Database.
Par exemple, utilisez la commande suivante pour créer un travail standard unique à exécuter dans le groupe de destinataires HIGH
:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'update_sales',
job_type => 'STORED_PROCEDURE',
job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY',
start_date => '28-APR-19 07.00.00 PM Australia/Sydney',
repeat_interval => 'FREQ=DAILY;INTERVAL=2',
end_date => '20-NOV-19 07.00.00 PM Australia/Sydney',
auto_drop => FALSE,
job_class => 'HIGH',
comments => 'My new job');
END;
/
Remarques concernant Oracle Scheduler :
-
L'utilisation d'octrois supplémentaires
DBMS_SCHEDULER.CREATE_JOB
pour des rôles ou des privilèges spécifiques peut être requise. L'utilisateurADMIN
et les utilisateurs disposant du rôleDWROLE
sont dotés des privilègesCREATE SESSION
etCREATE JOB
requis. Si un utilisateur ne dispose pas du rôleDWROLE
, des octrois sont requis pour les privilègesCREATE SESSION
etCREATE JOB
. -
L'attribut de travail
instance_id
est ignoré pour les travaux Oracle Scheduler exécutés sur Autonomous Database.
Pour plus d'informations sur Oracle Scheduler et DBMS_SCHEDULER.CREATE_JOB
, reportez-vous à Programmation de travaux avec Oracle Scheduler dans Oracle Database 19c ou Oracle Database 23ai.
Pour plus d'informations sur les attributs de travail, reportez-vous à Procédure SET_ATTRIBUTE dans Oracle Database 19c ou Oracle Database 23ai.
Outils de surveillance et de réglage des performances
Outil | Détails |
---|---|
Hub de performances |
Un outil riche en fonctionnalités disponible dans la console Oracle Cloud Infrastructure (OCI). Le hub de performances est également intégré à Oracle Database Actions et Oracle Enterprise Manager. Pour plus de détails, reportez-vous à Surveillance des performances de base de données avec le hub de performances. |
Mesures d'Autonomous Database |
Les mesures Autonomous Database permettent de mesurer des données quantitatives utiles, telles que l'utilisation de l'UC et du stockage, le nombre de tentatives de connexion à la base de données ayant réussi ou échoué, les opérations de base de données, les requêtes SQL, les transactions, etc. Les données de mesure permettent de diagnostiquer et de résoudre les problèmes liés aux ressources Autonomous Database. Pour plus d'informations, telles que les prérequis, l'utilisation et la liste des mesures disponibles pour Autonomous Database on Dedicated Exadata Infrastructure, reportez-vous à Surveillance des bases de données avec des mesures Autonomous Database. |
Référentiel automatique de charge globale (AWR) et moniteur automatique de diagnostic de base de données (ADDM) |
Deux autres outils sont couramment utilisés : le référentiel AWR et le moniteur ADDM (moniteur de diagnostic de base de données automatique). Le référentiel AWR stocke les statistiques relatives aux performances d'une base de données Oracle. Le moniteur ADDM est un outil de diagnostic qui analyse régulièrement les données AWR, localise les causes premières des problèmes de performances, fournit des recommandations pour corriger les problèmes et identifie les zones non problématiques du système. Etant donné que le référentiel AWR est un référentiel de données de performances historiques, le moniteur ADDM peut analyser les problèmes de performances après l'événement, ce qui permet souvent de gagner du temps et des ressources pour reproduire le problème. Pour obtenir des instructions sur l'utilisation de ces outils, ainsi que des informations détaillées sur la surveillance et le réglage des performances de base de données, reportez-vous au guide de réglage des performances Oracle Database 19c ou au guide de réglage des performances Oracle Database 23ai. Le référentiel AWR et ADDM sont également disponibles à partir du hub de performances. Pour plus de détails, reportez-vous à Surveillance des performances de base de données avec le hub de performances. Pour une présentation rapide de la surveillance et du réglage des performances de base de données, reportez-vous au Guide de réglage des performances + Oracle Database 19c 2 Day ou au Guide de réglage des performances + Oracle Database 23ai 2 Day. |