Fonctionnalités de hautes performances dans Autonomous AI Database sur une infrastructure Exadata dédiée
Cet article décrit les principales fonctionnalités de réglage des performances dans la base de données Autonomous AI sur une infrastructure Exadata dédiée.
Notez que tout au long de cette section, le terme "vous" est largement 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 AI Database inclut plusieurs fonctionnalités qui surveillent, analysent et optimisent automatiquement les performances de votre base de données. Pour plus d'informations sur les fonctions de réglage SQL et de gestion des performances d'Oracle Autonomous AI Database, ainsi que sur leur utilisation, reportez-vous au Guide de réglage SQL Oracle Database 19c ou au Guide de réglage SQL Oracle Database 26ai.
Vous pouvez voir une catégorisation étendue des principales fonctionnalités de réglage des performances d'Autonomous AI Database décrites ci-dessous.
Description de l'illustration hp_features.svg
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.
Lorsque vous établissez des connexions à votre base de données Autonomous AI, les performances de l'interaction de votre application avec la base de données dépendent du service de base de données auquel vous vous connectez. Autonomous AI Database fournit plusieurs ensembles de services de base de données à utiliser lors de la connexion à la base de données. Ces services d'accès sont conçus pour prendre en charge différents types d'opération de base de donnée, tel que décrit dans Noms de service de base de donnée prédéfinis pour les bases de donnée autonomes.
A savoir : 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 afin de décider quel service de base de données est le plus adapté aux exigences de performances de votre application.
Pools de connexions
Lorsque vous établissez des connexions à votre base de données Autonomous AI, 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
Oracle Net Services (anciennement SQL*Net) fournit diverses fonctionnalités de connexion qui améliorent les performances dans des scénarios de connexion spécifiques. Ces fonctionnalités sont décrites dans le Guide de l'administrateur Oracle Database 19c Net Services ou dans le Guide de l'administrateur Oracle Database 26ai Net Services.
-
Le balisage de colocalisations 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 26ai.
-
La configuration de serveur partagé est une autre fonctionnalité prise en charge par Autonomous AI Database pour la maintenance des 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. Ce paramètre s'applique à toutes les bases de données qui y sont créées. Reportez-vous à Création d'une base de données Conteneur Autonomous pour obtenir des instructions.
Reportez-vous également au Guide de l'administrateur Oracle Database 19c Net Services ou au Guide de l'administrateur Oracle Database 26ai Net Services pour plus d'informations sur les serveurs partagés, notamment sur les fonctionnalités telles que le multiplexage de session.
Une fois la connexion au serveur partagé activée pour votre 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é.
Remarque : vous ne pouvez pas désactiver un serveur partagé pour une base de données Autonomous AI spécifique créée sous une base de données Conteneur Autonomous avec serveur partagé et vous ne pouvez pas utiliser de connexion dédiée pour les bases de données Autonomous AI créées sous une base de données Conteneur Autonomous avec serveur partagé.
Fonctionnalités de réglage des performances SQL
Une application de qualité commence par un code SQL bien écrit. Oracle Autonomous AI Database propose 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 de l'optimiseur
-
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
-
Trace SQL
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. Vous pouvez donc améliorer votre code à l'aide de SQL Worksheet fourni par Oracle Database Actions (intégrée à votre base de données Autonomous AI) 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, l'obtention d'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 base de données Autonomous AI.
La fonction de trace SQL est désactivée par défaut dans la base de données Autonomous AI. 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, voir Utiliser la fonction de trace SQL sur la base de données Autonomous AI.
Statistiques de l'optimiseur
Autonomous AI Database collecte automatiquement des statistiques d'optimiseur afin que vous n'ayez pas à effectuer cette tâche manuellement et pour veiller à ce que vos statistiques soient mises à jour. La Collecte automatique des statistiques est activée dans Autonomous AI Database et exécutée dans une fenêtre de maintenance standard.
Remarque : pour plus d'informations sur les durées des fenêtres de maintenance et la collecte automatique des statistiques d'optimiseur, reportez-vous au Guide de l'administrateur Oracle Database 19c ou au Guide de l'administrateur Oracle Database 26ai. 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 26ai.
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.
La base de données Autonomous AI par défaut pour l'optimiseur et les conseils PARALLEL diffèrent en fonction de la charge globale :
-
Autonomous AI Lakehouse : base de données Autonomous AI avec Data Warehouse ignore les conseil pour l'optimiseur et les conseil
PARALLELdans 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_HINTSsurFALSEau niveau de la session ou du système à l'aide deALTER SESSIONou 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
PARALLELdans vos instructions SQL en définissantOPTIMIZER_IGNORE_PARALLEL_HINTSsurFALSEau niveau de la session ou du système à l'aide deALTER SESSIONou deALTER SYSTEM.Par exemple, la commande suivante active les conseils
PARALLELdans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE; -
Autonomous AI Transaction Processing : l'optimiseur Autonomous AI Database honore les conseils et les conseils
PARALLELdans les instructions SQL par défaut.Vous pouvez désactiver les conseils pour l'optimiseur en définissant le paramètre
OPTIMIZER_IGNORE_HINTSsurTRUEau niveau de la session ou du système à l'aide deALTER SESSIONou 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
PARALLELdans vos instructions SQL en définissantOPTIMIZER_IGNORE_PARALLEL_HINTSsurTRUEau niveau de la session ou du système à l'aide deALTER SESSIONou deALTER SYSTEM.Par exemple, la commande suivante active les conseils
PARALLELdans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;
Indexation automatique
L'indexation automatique automatise les tâches de gestion des index dans la base de données Autonomous AI. L'indexation automatique est désactivée par défaut dans la base de données Autonomous AI.
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 de la base de données Autonomous AI surveille la charge globale d'application, et crée et tient à jours automatiquement les index.
Conseil : pour commencer par tester la méthode ci-après, suivez l'exercice 14 sur l'indexation automatique dans l'atelier Oracle Autonomous AI Database Dedicated pour le développeur et les utilisateurs de base de donnée.
Activer l'indexation automatique
-
Utilisez la procédure
DBMS_AUTO_INDEX.CONFIGUREpour 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_INDEXpour générer des rapports sur la tâche automatique et définir les préférences d'indexation automatique. Remarque : Lorsque l'indexation automatique est activée, la compression des index automatique est activée par défaut.
Désactiver l'indexation automatique
Utilisez la procédure 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 dans le Guide de l'administrateur Oracle Database 26ai.
Assimilation rapide
L'ingestion rapide optimise le traitement des insertions de données monolignes à haute fréquence dans une base de données. L'inclusion rapide utilise la zone de mémoire LARGE POOL pour mettre en mémoire tampon les insertions avant de les écrire sur disque, afin d'améliorer les performances d'insertion de données.
L'objectif du fast-ingest est de prendre en charge les applications qui génèrent beaucoup de données d'information qui ont une valeur importante dans l'agrégat, 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 "feu et oubli" rapide, comme 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 AI Database, où les données sont consignées et ne sont jamais perdues une fois "écrites" dans la base de données (c'est-à-dire validées). Pour 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 ont été ajoutées qui peuvent être appelées pour vérifier si les données ont été écrites dans la base de données.
Pour obtenir une présentation de l'inclusion rapide et des étapes à suivre pour utiliser cette fonctionnalité, reportez-vous à Utilisation de l'inclusion rapide dans le Guide de réglage des performances Oracle Database 19c ou Guide de réglage des performances Oracle Database 26ai.
Pour utiliser l'ingestion rapide avec votre base de données d'IA autonome, vous devez :
-
Activer l'optimiseur pour qu'il utilise des conseils : définissez le paramètre
optimizer_ignore_hintssurFALSEau niveau de la session ou du système, le cas échéant.Selon le type de charge globale de votre base de données Autonomous AI, par défaut,
optimizer_ignore_hintspeut être défini surFALSEau niveau du système. Pour plus d'informations, reportez-vous à Statistiques de l'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 26ai pour connaître les limites applicables aux tables pour l'inclusion rapide (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 AI 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 grandes afin de pouvoir hiérarchiser 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 suffisamment de ressources pour être terminés. Par exemple, pour un projet critique de chargement d'un data warehouse, vous pouvez combiner tous les travaux d'entreposage de données en une seule classe et le 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 consommateurs de ressources correspondants. Ces classes de travail vous permettent d'indiquer le groupe de consommateurs de ressources 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 la base de données Autonomous AI.
Par exemple, utilisez ce qui suit pour créer un travail standard unique à exécuter dans le groupe de consommateurs de ressources 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 pour Oracle Scheduler :
-
Pour utiliser
DBMS_SCHEDULER.CREATE_JOB, des autorisations supplémentaires peuvent être requises pour des rôles ou des privilèges spécifiques. L'utilisateurADMINet les utilisateurs avecDWROLEdisposent des privilègesCREATE SESSIONetCREATE JOBrequis. Si un utilisateur ne dispose pas deDWROLE, des autorisations sont requises pour les privilègesCREATE SESSIONetCREATE JOB. -
L'attribut de travail
instance_idest ignoré pour les travaux Oracle Scheduler exécutés sur la base de données Autonomous AI.
Pour plus d'informations sur Oracle Scheduler et DBMS_SCHEDULER.CREATE_JOB, reportez-vous à Planification de travaux avec Oracle Scheduler dans Oracle Database 19c ou Oracle Database 26ai .
Pour plus d'informations sur les attributs de travail, reportez-vous à Procédure SET_ATTRIBUTE dans Oracle Database 19c ou Oracle Database 26ai.
Outils de surveillance et de réglage des performance
Plusieurs situations peuvent entraîner des problèmes de performances des applications, telles que la modification de la charge de travail, les limites de ressources sur les serveurs d'applications et de bases de données, ou simplement des goulets d'étranglement réseau. Oracle propose un large éventail d'outils pour vous aider à surveiller les performances, à diagnostiquer les problèmes de performances, et à régler l'application ou la base de données afin de résoudre le problème. Certains d'entre eux sont répertoriés ci-dessous :
| Outil | Détails |
|---|---|
| Hub de performances | 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 d'informations, reportez-vous à Surveillance des performances de base de données avec le hub de performances. |
| Mesures de base de données d'IA autonome | Les mesures de la base de données Autonomous AI permettent d'évaluer des données quantitatives utiles, telles que l'utilisation de l'UC et du stockage, le nombre de tentatives d'ouverture de session de la base de données ayant réussi et échoué, les opérations de base de données, les requêtes SQL, les transactions, etc. Vous pouvez utiliser les données de mesure pour diagnostiquer et résoudre les problèmes liés aux ressources de base de données d'IA autonome. Pour plus d'informations sur les prérequis, l'utilisation et la liste des mesures disponibles pour Autonomous AI Database on Dedicated Exadata Infrastructure, reportez-vous à Surveillance des bases de données avec des mesures de base de données Autonomous AI. |
| Référentiel AWR et moniteur de diagnostic de base de données automatique (ADDM) | Deux autres outils couramment utilisés sont le référentiel AWR (Automatic Workload Repository) et le moniteur ADDM (Automatic Database Diagnostic Monitor). Le référentiel AWR stocke des statistiques relatives aux performances d'une base de données Oracle. Il s'agit d'un outil de diagnostic qui analyse régulièrement les données AWR, détermine les causes premières de tout problème de performances, fournit des recommandations pour corriger les problèmes et identifie les parties non problématique 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 d'économiser du temps et des ressources lors de la reproduction d'un 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 26ai. Le référentiel AWR et le moniteur ADDM sont également disponibles à partir du hub de performances. Pour plus d'informations, 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 jours ou au Guide de réglage des performances + Oracle Database 26ai 2 jours. |