Caractéristiques de haute performance d'une base de données autonome avec intelligence artificielle sur une infrastructure Exadata dédiée
Cet article décrit les principales fonctions de réglage de la performance de la base de données autonome avec intelligence artificielle sur une infrastructure Exadata dédiée.
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 AI Database comprend plusieurs fonctions qui surveillent, analysent et optimisent automatiquement les performances de votre base de données. Pour obtenir la liste complète des fonctions de réglage SQL et de gestion de la performance d'Oracle Autonomous AI Database, ainsi que des instructions sur leur utilisation, voir Oracle Database 19c SQL Tuning Guide ou Oracle Database 26ai SQL Tuning Guide.
Vous pouvez voir une large catégorisation pour les principales fonctions de réglage de la performance de Autonomous AI Database décrites ci-dessous.
Description de l'illustration hp_features.svg
Services de base de données prédéfinis
La façon dont votre application se connecte à votre base de données et celle dont vous codez les appels SQL à la base de données déterminent la performance globale des opérations de traitement des transactions et de production de rapports de votre application.
Lorsque vous établissez des connexions à votre base de données d'IA autonome, 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 êtes connecté. Autonomous AI Database fournit plusieurs jeux de services de base de données à utiliser lors de la connexion à votre base de données. Ces services de connexion sont conçus pour prendre en charge différents types d'opération de base de données, comme décrit sous Noms de service de base de données prédéfinis pour les bases de données IA autonomes.
Conseil : Vérifiez les caractéristiques clés des services de base de données prédéfinis et le tableau qui compare les différents jeux de services de base de données en fonction de ces caractéristiques pour déterminer quel service de base de données est le plus approprié pour les exigences de performance de votre application.
Réserves de connexions
Lorsque vous établissez des connexions à votre base de données d'intelligence artificielle autonome, vous pouvez utiliser des réserves de connexions pour réduire la surcharge de performance liée à la création et à la destruction répétées de connexions individuelles. Il s'agit d'un autre facteur qui a une grande incidence sur les performances de l'interaction de votre application avec la base de données.
Bien souvent, l'utilisation de réserves de connexions n'est envisagée que lors de la conception ou de l'amélioration d'une application pour assurer la disponibilité continue. Toutefois, l'utilisation de réserves de connexions au lieu de connexions individuelles peut présenter des avantages pour presque toutes les applications de traitement de transactions. Une réserve de connexions offre les avantages suivants :
-
Réduit le nombre de créations de nouveaux objets 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 utilisées pour maintenir les connexions.
-
Réduit le travail de codage requis pour gérer manuellement les objets de connexion.
Fonctions de connexion à usage spécifique
Oracle Net Services (précédemment appelé SQL*Net) fournit diverses fonctions de connexion qui améliorent la performance dans des scénarios de connexion spécifiques. Ces fonctions sont décrites dans le guide de l'administrateur d'Oracle Database 19c Net Services ou dans le guide de l'administrateur d'Oracle Database 26ai Net Services.
-
Le marquage de la collecte est l'une de ces fonctions, utile pour certaines applications de traitement des transactions. Si votre application établit des connexions répétées au même service de base de données, le marquage de la 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 normalement effectué côté base de données des connexions. Pour plus d'informations, voir COLOCATION_TAG of Client Connections (COLOCATION_TAG des connexions client) dans Oracle Database 19c ou Oracle Database 26ai.
-
La configuration de serveur partagé est une autre fonction prise en charge par Autonomous AI Database pour maintenir les applications existantes conçues sans réserve de connexions. L'architecture de serveur partagé permet au serveur de base de données d'autoriser plusieurs processus clients à partager très peu de processus serveurs. Cela augmente le nombre d'utilisateurs que l'application peut prendre en charge. L'utilisation de l'architecture de serveur partagé pour ces applications existantes permet à celles-ci d'évoluer sans qu'il soit nécessaire de les modifier.
Vous pouvez activer les connexions de serveur partagé lors du provisionnement d'une base de données conteneur autonome. Ce paramètre s'applique à toutes les bases de données qu'elle contient. Pour obtenir des instructions, voir Créer une base de données conteneur autonome.
Voir aussi Oracle Database 19c Net Services Administrator's Guide ou Oracle Database 26ai Net Services Administrator's Guide pour plus d'informations sur les serveurs partagés, notamment sur les fonctions telles que le multiplexage de session.
Une fois la connexion au serveur partagé activée pour votre base de données conteneur autonome, il n'est pas nécessaire de modifier la chaîne de connexion. La configuration par défaut est Dedicated.
Note : Vous ne pouvez pas désactiver un serveur partagé pour une base de données d'IA autonome spécifique créée dans une base de données conteneur autonome avec serveur partagé et vous ne pouvez pas utiliser une connexion dédiée pour les bases de données d'IA autonomes créées dans une base de données conteneur autonome avec serveur partagé.
Fonctionnalités de réglage des performances SQL
Il n'y a pas d'application performante sans code SQL bien écrit. Oracle Autonomous AI Database offre de nombreuses fonctions qui vous permettent de créer des applications haute performance et de valider votre code SQL et PL/SQL. Certaines de ces fonctionnalités sont énuméré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 énoncés SQL incontrôlés
-
Gestion de plan SQL
-
Ensembles de réglages SQL
-
Trace SQL
Au fur et à mesure que vous développez votre application, vous pouvez rapidement apprendre comment ces fonctions 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 base de données d'IA autonome) et Oracle SQL Developer (application gratuite que vous installez sur votre système de développement).
Traçage SQL
Lorsqu'une opération d'application prend plus de temps que prévu, l'obtention d'une trace de tous les énoncés SQL exécutés dans le cadre de cette opération avec des détails tels que le temps passé par cet énoncé SQL dans les phases d'analyse, d'exécution et d'extraction vous aidera à identifier et à résoudre la cause du problème de performance. Pour ce faire, vous pouvez utiliser la fonction de trace SQL sur une base de données autonome d'IA.
La trace SQL est désactivée par défaut dans Autonomous AI Database. Vous devez l'activer pour commencer à collecter les données de trace SQL. Reportez-vous à Utiliser la fonction de suivi SQL sur la base de données d'IA autonome pour obtenir des instructions détaillées pour activer et utiliser la fonction de suivi SQL.
Statistiques de l'optimiseur
Autonomous AI Database collecte automatiquement les statistiques de l'optimiseur afin que vous n'ayez pas à effectuer cette tâche manuellement, ce qui vous permet de vous assurer que vos statistiques sont à jour. La collecte automatique des statistiques est activée dans Autonomous AI Database et s'exécute dans une fenêtre de maintenance standard.
Note : Pour plus d'informations sur les heures de la fenêtre de maintenance et la collecte automatique des statistiques de l'optimiseur, voir Oracle Database 19c Administrator's Guide ou Oracle Database 26ai Administrator's Guide. Pour plus d'informations sur les statistiques de l'optimiseur, voir Oracle Database 19c SQL Tuning Guide ou Oracle Database 26ai SQL Tuning Guide.
Conseils de l'optimiseur
Les conseils de l'optimiseur sont des commentaires spéciaux dans un énoncé SQL qui fournissent des instructions à l'optimiseur. L'optimiseur utilise des conseils pour choisir un plan d'exécution pour l'énoncé, sauf si une condition donnée l'en empêche.
Les valeurs par défaut de la base de données d'intelligence artificielle autonome pour l'optimiseur et les conseils PARALLEL diffèrent selon votre charge de travail :
-
Entrepôt avec lac de données autonome sur l'IA : La base de données autonome avec entrepôt de données ignore les conseils de l'optimiseur et les conseils
PARALLELdans les énoncés SQL par défaut.Si votre application utilise des conseils, vous pouvez activer les conseils de l'optimiseur en réglant le paramètre
OPTIMIZER_IGNORE_HINTSàFALSEau niveau de la session ou du système à l'aide deALTER SESSIONouALTER 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 énoncés SQL en réglantOPTIMIZER_IGNORE_PARALLEL_HINTSàFALSEau niveau de la session ou du système à l'aide deALTER SESSIONouALTER SYSTEM.Par exemple, la commande suivante active les conseils
PARALLELdans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE; -
Traitement des transactions par l'IA autonome : Les conseils de l'optimiseur honorent Autonomous AI Database et les conseils
PARALLELdans les énoncés SQL par défaut.Vous pouvez désactiver les conseils de l'optimiseur en réglant le paramètre
OPTIMIZER_IGNORE_HINTSàTRUEau 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 énoncés SQL en réglantOPTIMIZER_IGNORE_PARALLEL_HINTSàTRUEau niveau de la session ou du système à l'aide deALTER SESSIONouALTER 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 d'index dans Autonomous AI Database. L'indexation automatique est désactivée par défaut dans la base de données autonome avec intelligence artificielle.
La création manuelle d'index nécessite une connaissance approfondie du modèle de données, de l'application et de la répartition des données. Par le passé, les administrateurs de base de données étaient chargés de sélectionner les index à créer. Il arrivait qu'ils ne modifient pas leurs choix ou qu'ils ne tiennent pas les index à jour en cas de changement de situation. En conséquence, des possibilités d'amélioration étaient perdues et l'utilisation d'index inutiles pouvait entraîner une dégradation de la performance.
La fonction d'indexation automatique dans Autonomous AI Database surveille la charge de travail de l'application et crée et tient à jour les index automatiquement.
Conseil : Pour une alternative "Essayez-le" qui présente ces instructions, exécutez Laboratoire 14 : Indexation automatique dans l'atelier Oracle Autonomous AI Database Dedicated for Developers and Database Users.
Activer l'indexation automatique
-
Utilisez la procédure
DBMS_AUTO_INDEX.CONFIGUREpour activer l'indexation automatique. Par exemple, l'exécution de l'énoncé ci-dessous permet l'indexation automatique dans une base de données et crée les nouveaux index automatiques en tant qu'index visibles, de sorte qu'ils puissent être utilisés dans des énoncés SQL.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT'); -
Utilisez l'ensemble
DBMS_AUTO_INDEXpour générer un rapport sur la tâche automatique et définir les préférences d'indexation automatique. Note : Lorsque l'indexation automatique est activée, la compression d'index pour les index automatiques 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'énoncé 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, voir Gestion des index automatiques dans le guide de l'administrateur d'Oracle Database 19c ou le guide de l'administrateur d'Oracle Database 26ai.
Ingestion rapide
L'ingestion rapide optimise le traitement des insertions de données monolignes à haute fréquence dans une base de données. L'ingestion 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 des insertions 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 dans l'Internet of Things (IoT) ont une charge de travail de type "feu et oubli" rapide, telle que les données de capteurs, les données de compteurs intelligents ou même les caméras de surveillance. Pour ces applications, les données peuvent être collectées et écrites dans la base de données en volumes élevés pour une analyse ultérieure.
L'ingestion rapide est très différente du traitement normal des transactions Oracle AI Database où les données sont enregistré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'ingestion maximal, les mécanismes de transaction Oracle normaux sont ignorés et 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 un aperçu de l'ingestion rapide et des étapes impliquées dans l'utilisation de cette fonction, consultez Utilisation de l'ingestion rapide dans le Guide de réglage de la performance d'Oracle Database 19c ou le Guide de réglage de la performance d'Oracle Database 26ai.
Pour utiliser l'ingestion rapide avec votre base de données Autonomous AI Database, vous devez :
-
Activer l'optimiseur à utiliser des conseils : Réglez le paramètre
optimizer_ignore_hintsàFALSEau niveau de la session ou du système, selon le cas.Selon le type de charge de travail de votre base de données d'intelligence artificielle autonome,
optimizer_ignore_hintspeut par défaut être réglé àFALSEau niveau du système. Pour plus d'informations, voir Statistiques de l'optimiseur. -
Créer une table pour l'ingestion rapide : Consultez le guide de réglage de la performance d'Oracle Database 19c ou le guide de réglage de la performance d'Oracle Database 26ai pour connaître les limites d'admissibilité des tables à l'ingestion rapide (les tables ayant les caractéristiques spécifiées ne peuvent pas utiliser l'ingestion 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 des tâches qui partagent des caractéristiques et un comportement communs dans des entités plus grandes afin que vous puissiez hiérarchiser ces classes en contrôlant les ressources affectées à chaque classe.
Avec des 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 entrepôt de données, vous pouvez combiner toutes les tâches d'entreposage de données dans une classe et hiérarchiser celle-ci par rapport aux autres tâches en affectant un pourcentage élevé des ressources disponibles. Vous pouvez également affecter des priorités relatives aux emplois d'une classe.
Les valeurs job_class prédéfinies, TPURGENT, TP, HIGH, MEDIUM et LOW sont mappées aux groupes de consommateurs correspondants. Ces classes de travail vous permettent de spécifier le groupe de consommateurs de ressources dans lequel une tâche est exécutée avec DBMS_SCHEDULER.CREATE_JOB.
La procédure DBMS_SCHEDULER.CREATE_JOB prend en charge les types de tâche PLSQL_BLOCK et STORED_PROCEDURE pour le paramètre job_type dans la base de données d'intelligence artificielle autonome.
Par exemple, utilisez les éléments suivants pour créer une seule tâche standard à 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;
/
Notes 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 dotés deDWROLEdisposent 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 tâche
instance_idest ignoré pour les tâches Oracle Scheduler exécutées sur la base de données IA autonome.
Voir Planification de travaux avec Oracle Scheduler dans Oracle Database 19c ou Oracle Database 26ai pour plus d'informations sur Oracle Scheduler et DBMS_SCHEDULER.CREATE_JOB.
Voir Procédure SET_ATTRIBUTE dans Oracle Database 19c ou Oracle Database 26ai pour plus d'informations sur les attributs de tâche.
Outils de surveillance et de réglage de la performance
Plusieurs situations telles que l'évolution des charges de travail, les limites des ressources sur les serveurs d'applications et de bases de données ou tout simplement les goulots d'étranglement du réseau peuvent entraîner des problèmes de performance des applications. Oracle fournit un large éventail d'outils pour vous aider à surveiller la performance, à diagnostiquer les problèmes de performance et à régler votre application ou la base de données pour résoudre les problèmes. Certains d'entre eux sont énumérés ci-dessous :
| Outil | Détails |
|---|---|
| Centre de performance | Outil riche en fonctionnalités facilement disponible dans la console Oracle Cloud Infrastructure (OCI). Le centre de performance est également intégré à Oracle Database Actions et à Oracle Enterprise Manager. Voir Surveiller la performance de la base de données avec le centre de performance pour plus de détails. |
| Mesures de base de données d'IA autonome | Les mesures de base de données de l'IA autonome vous aident à mesurer des données quantitatives utiles, telles que l'utilisation de l'UC et du stockage, le nombre de tentatives de connexion et de connexion à la base de données réussies ou en échec, les opérations de base de données, les interrogations SQL et les transactions, etc. Vous pouvez utiliser les données de mesures pour diagnostiquer et résoudre les problèmes liés à vos ressources de base de données Autonomous AI Database. Voir Surveiller les bases de données à l'aide des mesures de base de données d'IA autonome pour plus d'informations, telles que les préalables, l'utilisation et la liste des mesures disponibles pour une base de données d'IA autonome sur une infrastructure Exadata dédiée. |
| Référentiel AWR (Automatic Workload Repository) et moniteur ADDM (Automatic Database Diagnostic Monitor) | 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 les statistiques relatives aux performances d'une base de données Oracle et le moniteur ADDM est un outil de diagnostic qui analyse régulièrement les données AWR, localise les causes fondamentales des problèmes de performances, fournit des recommandations pour corriger les problèmes et identifie les zones du système qui ne posent pas de problème. Le référentiel AWR étant un référentiel de données historiques sur les performances, 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 pour reproduire 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 de la performance des bases de données, voir Guide de réglage de la performance d'Oracle Database 19c ou Guide de réglage de la performance d'Oracle Database 26ai. Le référentiel AWR et le moniteur ADDM sont également disponibles à partir du centre de performance. Pour plus de détails, voir Surveiller la performance de la base de données avec le centre de performance. Pour une présentation rapide de la surveillance et du réglage de la performance des bases de données, voir Oracle Database 19c 2 Day + Performance Tuning Guide ou Oracle Database 26ai 2 Day + Performance Tuning Guide. |