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 dans Base de données d'IA autonome sur une infrastructure Exadata dédiée.
Notez que dans cette section, le terme " vous " est généralement utilisé pour désigner tout utilisateur de votre organisation qui a la responsabilité d'exécuter certaines tâches. Dans certains cas, c'est le DBA de l'application, dans d'autres, c'est le développeur de l'application.
Le service Base de données d'IA autonome comprend plusieurs fonctions qui surveillent, analysent et optimisent automatiquement la performance de votre base de données. Pour obtenir la liste complète des fonctions de réglage et de gestion de la performance d'Oracle Autonomous AI Database, ainsi que des instructions sur leur utilisation, voir le Guide de réglage SQL pour Oracle Database 19c ou le Guide de réglage SQL pour Oracle Database 26ai.
Vous pouvez voir une large catégorisation pour les principales fonctions de réglage de la performance d'Autonomous AI Database décrites ci-dessous.
Conseil :
Dans l'image suivante, vous pouvez cliquer sur la fonction que vous souhaitez explorer davantage.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.
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 quel service de base de données convient le mieux aux exigences de performance de votre application.Réserves de connexions
Lorsque vous établissez des connexions à votre base de données autonome d'IA, 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
-
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, consultez COLOCATION_TAG sur les connexions de 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 la maintenance des 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 des 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, y compris les fonctionnalités telles que le multiplexage de sessions.
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é.
Fonctions de réglage de la performance SQL
Il n'y a pas d'application performante sans code SQL bien écrit. Oracle Autonomous AI Database offre de nombreuses fonctionnalités 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 Autonomous AI Database) 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. Vous pouvez utiliser la fonction de traçage SQL sur une base de données d'IA autonome pour ce faire.
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'intelligence artificielle autonome pour obtenir des instructions détaillées pour activer et utiliser la fonction de suivi SQL.
Statistiques de l'optimiseur
Le service Base de données d'IA autonome 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 fenêtres de maintenance et la collecte automatique de statistiques de l'optimiseur, voir le Guide de l'administrateur d'Oracle Database 19c ou le Guide de l'administrateur d'Oracle Database 26ai.
Pour plus d'informations sur les statistiques de l'optimiseur, voir le guide de réglage SQL pour Oracle Database 19c ou le guide de réglage SQL pour Oracle Database 26ai.
Conseils pour 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.
PARALLEL diffèrent selon la charge de travail :
-
Entrepôt avec lac de données autonome sur l'IA : Base de données autonome sur l'IA avec Data Warehouse 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 conseilsPARALLELdans votre session :ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE; -
Traitement des transactions avec l'IA autonome : honore les conseils de l'optimiseur pour l'IA autonome 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 des index dans Autonomous AI Database. L'indexation automatique est désactivée par défaut dans Autonomous AI Database.
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" qui présente ces instructions, exécutez Laboratoire 14 : Indexation automatique dans l'atelier Oracle Autonomous AI Database Dedicated for Developers and Database Users.- 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 :
Remarque : 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'é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 Oracle Database 19c Administrator's Guide ou Oracle Database 26ai Administrator's Guide.
Ingestion rapide
L'ingestion rapide optimise le traitement des insertions de données à rangée unique haute fréquence dans une base de données. L'ingestion rapide utilise le groupe volumineux pour mettre en mémoire tampon les insertions avant de les écrire sur le disque, de manière à améliorer la performance des insertions de données.
L'objectif de fast-ingest est de soutenir 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 de capteurs, les données de compteurs intelligents ou même les caméras de circulation. 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 nécessaires à 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.
-
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 votre type de charge de travail Base de données d'IA 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 tâche 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 qu'un projet critique charge un entrepôt de données, vous pouvez combiner toutes les tâches d'entreposage de données dans une classe et les hiérarchiser par rapport aux autres en affectant un pourcentage élevé des ressources disponibles. Vous pouvez également affecter des priorités relatives aux emplois d'une classe.
Les valeurs de job_class prédéfinies, TPURGENT, TP, HIGH, MEDIUM et LOW sont mappées aux groupes de consommateurs correspondants. Ces classes de tâche vous permettent de spécifier le groupe de consommateurs dans lequel une tâche s'exécute 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 Autonomous AI Database.
L'exemple suivant permet de créer une tâche standard à exécuter dans le groupe de consommateurs 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 sur Oracle Scheduler :
-
L'utilisation de
DBMS_SCHEDULER.CREATE_JOBpeut nécessiter des autorisations supplémentaires pour des rôles ou des privilèges spécifiques. L'utilisateurADMINet les utilisateurs dotés du rôleDWROLEdisposent des privilègesCREATE SESSIONetCREATE JOBrequis. Pour un utilisateur ne disposant du rôleDWROLE, 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 Autonomous AI Database.
Voir Programmation 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
| Outil | Détails |
|---|---|
| Centre de performance |
Outil riche en fonctionnalités disponible dans la console Oracle Cloud Infrastructure (OCI). Le centre de performance est également intégré à Oracle Database Actions et à Oracle Enterprise Manager. Pour plus de détails, voir Surveiller la performance des bases de données à l'aide du centre de performance. |
| Mesures liées à une base de données sur l'IA autonome |
Les mesures du service Base de données d'IA autonome vous aident à mesurer des données quantitatives utiles, telles que l'utilisation de l'UC et du stockage, le nombre d'essais de connexion et de connexion à la base de données, les opérations de base de données, les interrogations SQL, les transactions, etc. Vous pouvez utiliser des données de mesures pour diagnostiquer et résoudre les problèmes survenus dans les ressources du service Base de données d'IA autonome. Voir Surveiller les bases de données avec 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 Base de données d'IA autonome sur une infrastructure Exadata dédiée. |
| le référentiel AWR et le moniteur 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 les statistiques relatives à la performance 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 performance, fournit des recommandations pour les résoudre 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 la performance, le moniteur ADDM peut analyser les problèmes de performance après l'événement, ce qui permet souvent d'économiser le temps et les ressources requis 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 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. 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 des bases de données à l'aide du 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. |