Guide et outils de réglage des performances Oracle
Avez-vous remarqué que votre base de données fonctionne plus lentement que d'habitude ? Ensuite, vous aurez peut-être besoin d’une touche de réglage des performances.L'optimisation des performancesdans les bases de données Oracle élimine les goulots d'étranglement qui empêchent les applications de répondre et augmente la charge que votre base de données peut gérer.
Qu’est-ce que le réglage des performances Oracle ?
L'optimisation des performances est le processus d'administration d'une base de données pour améliorer les performances. L'optimisation des performances dans les bases de données Oracle comprendoptimisation des instructions SQLet des plans d'exécution de requêtes afin que les requêtes puissent être exécutées plus efficacement.
L'organisation d'une base de données, les instructions SQL utilisées pour accéder à ces données, déterminent le niveau de ressources nécessaires pour répondre aux requêtes lorsqu'une application communique avec la base de données.
Des problèmes tels que des instructions SQL mal optimisées obligent la base de données à travailler beaucoup plus dur pour récupérer des informations (ce qui entraîne une utilisation accrue des ressources système). Plus les ressources système sont utilisées, plus cela risque d'affecter l'expérience des utilisateurs sur les applications connectées.
Dans une entreprise, les utilisateurs signaleront une application lente à un administrateur de base de données qui tentera ensuite d'identifier la cause première du problème. L'administrateur analyse le code de l'instruction et recherche les goulots d'étranglement de la base de données. Le processus est long, car l'administrateur doit diagnostiquer la cause première du problème avant de pouvoir le résoudre.
Surveillance des performances dans les bases de données Oracle : temps de réponse et débit
Lors du réglage des performances d'une base de données Oracle, deux mesures sont utiles à mesurer :
- Temps de réponse– Combien de temps faut-il à la base de données pour terminer une demande.
- Débit du système– Le nombre de processus terminés sur une période donnée.
Un temps de réponse élevé signifie qu'une application offre une expérience utilisateur lente. D’un autre côté, un faible débit du système signifie que la base de données ne dispose que des ressources nécessaires pour gérer un petit nombre de tâches sur une courte période. Un administrateur doit être en mesure de savoir comment il essaie d'améliorer les performances avant de procéder au réglage.
La façon dont vous optimisez une base de données Oracle dépend de vos objectifs et du type d’applications que vous utilisez. De nombreux objectifs, comme un temps de réponse rapide ou un débit élevé, sont contradictoires.
L'optimisation des temps de réponse rapides peut accélérer les requêtes individuelles effectuées par les utilisateurs, mais sacrifier d'autres tâches de la charge de travail. En revanche, atteindre un débit élevé viserait à optimiser les performances de l’ensemble de la charge de travail pour prendre en charge un plus grand nombre de transactions par seconde (mais pas nécessairement à accélérer les requêtes individuelles).
Le type d’application que vous utilisez fait toute la différence. Si vous utilisez une application de processus de transaction en ligne (OLTP), vous utiliserez le débit pour mesurer les performances. Cela est dû au volume élevé de transactions que l’application doit gérer.
Cependant, si vous utilisiez un système d'aide à la décision (DSS) avec des utilisateurs exécutant des requêtes sur tout, depuis une poignée d'enregistrements jusqu'à des milliers d'enregistrements, vous mesureriez les performances en fonction du temps de réponse (sauf si vous preniez en charge de nombreux utilisateurs exécutant des requêtes simultanées) !
Les deux types de réglage : surveillance proactive et élimination des goulots d'étranglement
Maintenant que vous savez ce qu’est le réglage des performances, il est important d’examiner les deux principaux modèles de réglage :
- Surveillance proactive
- Élimination des goulots d'étranglement
Les administrateurs de bases de données utilisent ces deux modèles pour gérer les problèmes de performances et maintenir le fonctionnement des applications à un niveau élevé.
Surveillance proactive
La surveillance proactive est le processus de surveillance d'une base de données pour découvrir et résoudre rapidement les problèmes de performances plutôt que de simplement réagir en cas de problème. Grâce à une surveillance proactive, les administrateurs examineront périodiquement les bases de données pour identifier les signes de dégradation des performances.
L’idée derrière la surveillance proactive est de détecter les problèmes et les inefficacités avant qu’ils ne se transforment en problèmes plus graves à long terme. Certains problèmes courants que les administrateurs de bases de données recherchent incluent :
- Événements d'attente de base de données– Un nombre élevé d'événements peut affecter négativement les performances de la base de données. Trouver des sessions obstructives et les supprimer peut empêcher la dégradation des performances.
- Charge moyenne– La surveillance de la charge moyenne d'un serveur vous indiquera si les ressources du serveur fonctionnent normalement. Une charge moyenne élevée peut entraîner un ralentissement des performances de la base de données.
- Sessions de base de données– Surveiller le nombre de sessions actives peut vous empêcher d’atteindre le maximum (ce qui vous empêchera de pouvoir ouvrir de nouvelles sessions).
Cependant, une surveillance proactive comporte certains risques. Toute modification apportée par un administrateur peut entraîner une diminution des performances de la base de données. Les administrateurs peuvent atténuer les risques en étant prudents avant d'apporter de nouvelles modifications.
Élimination des goulots d'étranglement
Les goulots d’étranglement sont l’une des causes les plus courantes de mauvaises performances. Les goulots d’étranglement empêchent les requêtes d’atteindre leur destination et augmentent le temps de réponse des applications. Les goulots d'étranglement peuvent être provoqués par une série de facteurs allant d'instructions SQL mal codées à une utilisation élevée des ressources.
L’élimination des goulots d’étranglement est davantage un processus réactif qu’une surveillance proactive. Un administrateur identifie un goulot d'étranglement et trouve ensuite un moyen de le résoudre. Résoudre un goulot d’étranglement est un processus complexe et dépend de la cause profonde (et si elle est interne ou externe). Le recodage des instructions SQL est une solution pour résoudre les goulots d'étranglement internes, qui doivent être résolus en premier.
Une fois les goulots d'étranglement internes résolus, l'administrateur peut commencer à examiner les facteurs externes tels que les performances du processeur et du stockage qui pourraient être à l'origine du problème. Un administrateur peut choisir entre apporter des modifications à l'application (ou à la manière dont elle est utilisée), à Oracle ou à la configuration matérielle de l'hôte.
Comment optimiser les performances
L'optimisation des performances d'une base de données Oracle est un sujet très complexe car de nombreux facteurs différents peuvent affecter les performances de la base de données. Pour simplifier les choses, nous allons examiner quelques méthodes de base pour optimiser les performances.
1. Identifiez les requêtes coûteuses
La première étape du réglage du code SQL consiste à identifier les requêtes coûteuses qui consomment trop de ressources. Plutôt que d'optimiser chaque ligne de code, il est plus efficace de se concentrer sur les instructions SQL les plus utilisées et d'avoir la plus grande empreinte de base de données/E/S.
Un moyen simple d'identifier les requêtes coûteuses consiste à utiliser Outils de surveillance de base de données Oracle (nous examinons certaines de ces plateformes plus en détail ci-dessous). Un outil utile est Analyse Oracle SQL , qui peut identifier les instructions SQL gourmandes en ressources. L'ajustement de ces déclarations vous donnera le meilleur retour sur votre investissement en temps.
2. Minimisez la charge de travail (utilisez des index !)
Vous pouvez effectuer la même requête de différentes manières. Il est donc avantageux d'écrire du code qui minimise autant que possible la charge de travail. Si vous n'avez besoin que d'un instantané des données d'une table, cela n'a aucun sens de traiter des milliers de lignes dont vous n'avez pas besoin (vous ne faites que gaspiller des ressources système !). Une analyse complète de la table consomme plus de ressources de base de données et d'E/S.
Pour éliminer le stress lié au maintien d'une charge de travail importante, vous pouvez utiliser des index pour accéder à de petits ensembles de lignes plutôt que de traiter l'intégralité de la base de données en même temps. Utilisez des index dans les scénarios où une colonne est régulièrement interrogée.
3. Utilisez des connexions avec état avec les applications
Parfois, la cause des mauvaises performances ne vient pas du code mais du fait que la connexion continue de s’interrompre entre l’application et la base de données. Si votre application n'est pas configurée correctement, elle peut établir une connexion à la base de données pour accéder à une table, puis abandonner la connexion une fois qu'elle dispose des informations dont elle a besoin.
La suppression de la connexion après avoir accédé à la table est terrible pour les performances. Essayez plutôt de conserver une connexion avec état afin que l’application reste connectée à la base de données à tout moment. Le maintien de la connexion empêchera le gaspillage des ressources système à chaque fois que l'application interagit avec la base de données.
4. Collectez et stockez les statistiques de l'optimiseur
Les statistiques de l'optimiseur sont des données qui décrivent une base de données et ses objets. Ces statistiques sont utilisées par la base de données pour choisir le meilleur plan d'exécution des instructions SQL. La collecte et le stockage réguliers des statistiques de l'optimiseur sur les objets de base de données sont essentiels pour maintenir l'efficacité.
La collecte des statistiques de l'optimiseur garantit que la base de données dispose d'informations précises sur le contenu des tables. Si les données sont inexactes, la base de données peut choisir un mauvais plan d'exécution, ce qui affectera l'expérience de l'utilisateur final. Les bases de données Oracle peuvent collecter automatiquement les statistiques de l'optimiseur ou vous pouvez le faire manuellement avec le package DBMS_STATS.
Outils de surveillance des performances des requêtes Oracle DB
L'utilisation d'un agent logiciel pour surveiller les performances des requêtes SQL constitue le moyen le plus efficace de gérer les performances des requêtes. Les outils de surveillance des performances des bases de données peuvent vous aider à identifier le code SQL peu performant et vous permettre d'identifier la cause première des problèmes de performances. L'utilisateur peut afficher les performances des requêtes sur un tableau de bord afin de n'avoir pas besoin de rechercher des informations manuellement.
Analyseur de performances de base de données SolarWinds (ESSAI GRATUIT)
Analyseur de performances de base de données SolarWindsest un outil capable de surveiller les performances des requêtes SQL en temps réel. Vous pouvez afficher un tableau des principales instructions SQL de votre base de données pour connaître les instructions SQL ayant le plus grand impact. L'affichage des principales déclarations vous permet de concentrer vos efforts de correction sur les déclarations qui ont le plus grand impact sur les performances.
Avantages:
- Système de gestion de base de données hautement intuitif adapté aux implémentations de bases de données de taille moyenne à grande
- Surveille en temps réel, offrant un certain nombre d'options d'alerte et de notification qui peuvent s'intégrer aux solutions d'assistance populaires
- La surveillance des seuils permet aux équipes de rester proactives et de résoudre les problèmes avant qu'ils n'affectent les performances.
- Les tableaux de bord sont hautement personnalisables et peuvent être adaptés aux individus ou aux équipes
- L'analyse des requêtes intégrée aide les administrateurs de base de données à créer des requêtes plus efficaces
- Tire parti de l’apprentissage automatique pour identifier les goulots d’étranglement en matière de performances
Les inconvénients:
- Je préférerais une période d'essai plus longue
Il existe également une fonction d'analyse des blocages, qui vous permet de visualiser la hiérarchie des blocages de la base de données et de visualiser l'attente totale provoquée. Être capable de voir les requêtes qui obscurcissent les itinéraires des autres requêtes vous indique où apporter des modifications pour améliorer les performances. Tu peuxtéléchargez un essai gratuit.
SolarWinds Database Performance Analyser Commencez un essai GRATUIT de 14 jours
dbForge Studio pour Oracle (profileur Oracle SQL)
dbForge Studio pour Oracle est un environnement de développement intégré (IDE) fourni avec Oracle SQL Profiler. Avec le profileur, vous pouvez identifier les requêtes ayant la durée la plus élevée. Vous pouvez également afficher les plans d'exécution des requêtes et les statistiques de sessions pour obtenir des informations supplémentaires. Toutes les modifications que vous apportez seront enregistrées afin que vous puissiez revenir aux versions antérieures si vous faites une erreur.
Dans l'onglet Statistiques de session, vous pouvez comparer les résultats des nouvelles requêtes avec les anciennes versions. Les différences sont mises en évidence en rouge et en vert afin que vous puissiez facilement déterminer l'impact sur les performances. Les statistiques de session que vous pouvez surveiller incluent le processeur utilisé par cette session et les tris (lignes). L'onglet Statistiques de session vous permet de vous assurer que vos modifications améliorent réellement les performances !
Avantages:
- Offre des fonctionnalités supplémentaires au-delà de Management Studio sans outils ni options inutiles
- Excellent aperçu de la santé de plusieurs bases de données SQL Server
- Peut réécrire les requêtes et les données de profil directement depuis l'outil
Les inconvénients:
- Fonctionne uniquement sous Windows
- Nécessite Microsoft SQL Server Management Studio
Accordez-vous avec un objectif en tête !
Avoir des attentes claires avec un objectif spécifique en tête est essentiel pour maintenir votre base de données et régler le système. Le réglage des performances est plus facile lorsque vous savez ce que vous essayez d’atteindre.
Par exemple, si vous souhaitez minimiser le temps de réponse d'une application afin qu'elle termine les requêtes en 1 à 3 secondes, vous pouvez prendre des mesures pour adapter ce scénario. Cela signifie diagnostiquer les goulots d’étranglement et les problèmes de performances qui ralentissent le temps de réponse.
Être capable de se référer aux objectifs sera également utile lorsque vous utilisez un analyseur de base de données. Vous pourrez surveiller l’utilisation du disque, du processeur et du réseau pour identifier la manière dont les performances sont affectées. Mieux vous comprenez vos objectifs, mieux vous savez comment optimiser vos ressources.
FAQ sur l'optimisation des performances Oracle
Comment puis-je améliorer les performances de mes requêtes Oracle ?
L'indexation améliore la vitesse de récupération des données. Cependant, ne surindexez pas car ces index pourraient entrer en conflit et ralentir le renvoi des résultats. Le partitionnement des tables améliore la vitesse d'accès aux données car il réduit le nombre d'enregistrements qui doivent être analysés afin de renvoyer les résultats d'une requête. Le partitionnement prend tous les index actuellement sur la table et les duplique automatiquement afin qu'ils soient automatiquement appliqués à chaque partition.
Qu’est-ce que le réglage des performances SQL ?
Le réglage des performances SQL est le processus d'ordonnancement des jointures dans une requête SQL afin qu'elles extraient les enregistrements à la vitesse maximale. Il existe un certain nombre de méthodes qui peuvent être utilisées pour améliorer les requêtes SQL, telles que la suppression des jointures externes et le classement des lignes dans la clause WHERE afin que autant d'enregistrements que possible soient filtrés de la première table accédée par la requête, réduisant ainsi la quantité d'enregistrements. de tri à effectuer dans les autres tables accessibles par la requête.
Qu’est-ce que le goulot d’étranglement d’Oracle ?
Un goulot d'étranglement est un point dans le processus d'accès ou de réponse d'une base de données qui a une capacité limitée et qui ralentit donc le refus d'accès aux résultats car seul un nombre limité de requêtes peut être servi. Ceci est différent des verrouillages de ressources, qui se produisent lorsqu'un processus détient une ressource et ne la libère pas tant qu'une autre ressource n'est pas disponible.