Comment accélérer les requêtes Select dans Oracle – Réglage des requêtes Oracle

Rédigé Staff Contributor on novembre 16, 2021

Lorsque vous utilisez des bases de données Oracle, vous avez parfois besoin d’optimiser et d’homogénéiser la base de données pour garantir de bonnes performances. C’est ce qu’on appelle le réglage de base de données. Dans la plupart des cas, lorsque vous réglez une base de données, vous vous concentrez sur le réglage des requêtes SQL. Dans Oracle, le réglage des requêtes SQL est une partie importante de l’accélération des performances de base de données.

Dans ce guide, je vais commencer par une présentation du réglage SQL et des raisons pour lesquelles il est si important. Ensuite, j’aborderai les six meilleures pratiques pour le réglage des requêtes dans Oracle, et comment accélérer les requêtes SELECT dans Oracle. Cela inclut l’utilisation de SolarWinds® Database Performance Analyzer (DPA) ou d’un outil similaire pour mener le réglage des requêtes.

Qu’est-ce que le réglage SQL ?
Qu’est-ce que la requête SELECT ?
Meilleures pratiques de réglage des requêtes dans Oracle
Accélération des requêtes SELECT dans Oracle

Qu’est-ce que le réglage SQL ?

Le réglage SQL est essentiellement le processus d’optimisation d’une base de données pour obtenir de meilleures performances. La plupart des gains de réglage sont obtenus en se concentrant sur vos requêtes SQL et en en optimisant le fonctionnement.

Lors du réglage SQL, vous observez les requêtes SQL que vous utilisez pour accéder à la base de données et la parcourir, et essayez de les exécuter le plus rapidement possible. En effectuant un réglage des performances SQL régulier, vous pouvez résoudre les problèmes de performance SQL courants, comme l’indexation inefficace et les requêtes SQL non optimisées.

Si vos requêtes sont inefficaces (c’est-à-dire, si vous demandez de gros volumes de données alors que vous n’avez besoin que d’une petite quantité), les réponses de votre base de données sont lentes, et les performances de vos applications et services peuvent en pâtir. En particulier à l’échelle d’une entreprise, chaque requête compte.

Vous pouvez rédiger les requêtes SQL de différentes façons et y joindre différents paramètres. Certaines requêtes sont utilisées plus que d’autres, et il est important de vous assurer que vous les utilisez de manière efficace, par rapport au contexte global de réglage de votre base de données. L’une des requêtes les couramment utilisées est la requête SELECT. Le reste de ce guide abordera les conseils relatifs aux requêtes SELECT.

Qu’est-ce que la requête SELECT ?

L’instruction SQL SELECT permet de sélectionner les données d’une base de données. Lorsque vous utilisez la requête SELECT pour obtenir des données, vos résultats sont stockés dans une « table de résultats ». Cette table de résultats est également appelée « jeu de résultats ».

Supposons que vous avez une table d’informations appelée « Clients », avec cinq colonnes :

Nom Ville Âge Code postal Sexe
Alice Londres 27 87208 F
Bob New York 75 15923 M
Charlie Berlin 43 51480 M

Vous pouvez utiliser la requête SELECT pour sélectionner les données dans la table, en utilisant la syntaxe suivante :

SELECT Nom, Âge FROM Clients;

La table de résultats affiche les colonnes nommées « Nom » et « Âge », et pas les autres.

La requête SELECT permet de réduire rapidement les informations et de les filtrer selon des sélections, afin de traiter des ensembles de données plus petits plutôt que toutes les données. Cette requête est la requête la plus couramment utilisée avec les bases de données, ce qui signifie que son optimisation est primordiale pour les performances globales.

Il arrive que l’on utilise SELECT*, qui retourne toutes les colonnes de la table spécifiée, au lieu de retourner des colonnes spécifiques. Cette requête retourne un grand nombre d’informations, dont une grande partie peut être inutile dans le cadre de l’utilisation que vous en faites.

Meilleures pratiques de réglage des requêtes dans Oracle

Le réglage SQL Oracle n’est pas quelque chose que vous pouvez faire d’entrée de jeu, vous devez y revenir régulièrement. Le réglage SQL Oracle peut être complexe et vise généralement à optimiser votre base de données et obtenir toutes les informations dont vous avez besoin (lignes et colonnes) avec le moins d’interventions possible (lectures ou interactions) avec la base de données. Heureusement, le processus de réglage des requêtes SQL est le même dans de nombreuses bases de données ; nous pouvons donc nous concentrer sur les meilleures pratiques applicables que vous utilisiez une base de données Oracle ou autre.

Recommandation nº 1 : Avoir des objectifs clairs

L’une des premières choses que vous devez prendre en considération est le résultat opérationnel : en premier lieu, pour quelles raisons extrayez-vous ces informations et de quoi avez-vous besoin pour atteindre votre objectif ? Avant d’effectuer le réglage, il est important d’identifier les parties prenantes pertinentes et à quoi les requêtes vont servir spécifiquement. Assurez-vous également de connaître l’audience prévue pour les résultats : cela vous permettra de produire des tables de résultats avec le niveau de détails approprié pour les destinataires.

Une fois vos exigences définies, revérifiez-les, puis configurez votre base de données de production pour poursuivre les demandes nécessaires.

Recommandation nº 2 : Identifier les instructions SQL à fort impact

Le SQL à fort impact peut être déterminé par le nombre de lignes traitées, d’extractions de mémoire tampon, de lectures de disque, de Ko de mémoire, de secondes de processeur, de tris ou d’exécutions. Toutes les requêtes avec un nombre élevé dans l’une de ces catégories sont à fort impact, et ont par conséquent un coût élevé.

Recommandation nº 3 : Identifier votre plan d’exécution

Déterminez comment vos instructions SQL doivent être exécutées. Pour ce faire, Oracle inclut un utilitaire de plan d’explication. Le plan d’explication Oracle, ou tout plan d’exécution, permet de voir comment une instruction SQL sera exécutée sans devoir l’exécuter.

Il existe divers logiciels qui permettent de déterminer les instructions SQL à fort impact, d’observer la configuration de vos chemins d’exécution, puis de vous aider à effectuer les réglages recommandés. Je présenterai les outils en détail plus bas.

Recommandation nº 4 : Éviter les grandes analyses

Vous devez éviter les analyses de table complète, en particulier si vous travaillez avec de grandes tables de données. Cela crée des entrées/sorties inutiles et peut ralentir tout le système.

Regardez combien de lignes vous demandez dans la requête et utilisez les index pour diviser les résultats en parties plus petites. Les index permettent d’effectuer des recherches dans les données plus efficacement, comme l’index d’un livre. La création d’un index implique d’identifier les colonnes que vous voulez inclure et de nommer votre index. La syntaxe est la suivante :

CREATE INDEX <nom_index> on <nom_table> ( <colonne3>, <colonne42>, … );

Vous pouvez ainsi créer un index dans une table en fonction des colonnes que vous voulez inclure dans l’index.

Vous pouvez utiliser vos index pour accéder à des parties plus petites des tables ultérieurement, plutôt que de devoir analyser à nouveau des tables entières. Lors de l’indexation, vous devez indexer tous les prédicats des clauses JOIN, WHERE, ORDER BY et GROUP BY.

Si l’analyse de la table complète est la méthode d’accès la plus rapide, en particulier pour les petites tables, vous pouvez placer l’analyse dans le cache, pour y accéder ultérieurement plus facilement.

Recommandation nº 5 : Optimiser les instructions SELECT

L’une des principales façons d’optimiser une requête SELECT est de s’assurer que vous incluez uniquement les colonnes dont vous avez réellement besoin. Si possible, évitez d’utiliser SELECT*, car elle extrait de grandes quantités de données dont vous n’avez certainement pas besoin.

Dans la mesure du possible, évitez également d’utiliser SELECT DISTINCT. Une table contient souvent des valeurs numériques, et parfois ces valeurs sont en double. L’utilisation de SELECT DISTINCT renvoie uniquement les valeurs différentes. Cette requête peut sembler utile, mais requiert une grande quantité de ressources, car elle regroupe tous les champs de la requête pour créer des résultats distincts.

Recommandation nº 6 : Utiliser un outil tiers

L’une des meilleures approches du réglage des requêtes dans Oracle est d’utiliser un outil adapté à la tâche. Mon choix se porte sur SolarWinds Database Performance Analyzer (DPA).

DPA est spécialement conçu pour la surveillance, l’analyse et le réglage des performances des requêtes SQL. Plus particulièrement, il s’attache à l’analyse du temps de réponse et au suivi des réponses et des performances de votre base de données. Vous pouvez ainsi identifier les goulets d’étranglement, déterminer si une modification entraîne un ralentissement des réponses et identifier les causes premières les plus critiques. L’analyse du temps de réponse de DPA est basée sur les données SQL collectées toutes les secondes.

Le logiciel inclut des graphiques qui indiquent quelles instructions SQL présentent de mauvaises performances, les temps d’attente des applications et les temps ou événements d’attente pouvant entraîner un goulet d’étranglement au niveau des performances. Les graphiques sont interactifs : vous pouvez cliquer dessus pour accéder à davantage de détails sur les problèmes.

L’un des aspects les plus utiles de DPA pour le réglage des bases de données est sa fonctionnalité de « conseillers en réglage », conçue pour orienter le personnel informatique dans la bonne direction. Les conseillers en réglage mettent en évidence les problèmes demandant une attention immédiate et fournissent des données historiques faciles à voir, pour les comparer aux mesures actuelles. Les conseillers fournissent des conseils dynamiques, et les fonctionnalités de détection d’anomalies peuvent vous aider à identifier rapidement les instructions SQL inefficaces. L’application du conseil pour régler vos requêtes se traduit par un processus beaucoup plus rapide, qui permet une résolution rationalisée des requêtes inefficaces pouvant entraîner un ralentissement de votre base de données.

Database Performance Analyzer peut être intégré avec d’autres produits SolarWinds via Orion® Platform. Vous pouvez ainsi associer diverses solutions, dont le fameux SolarWinds Network Performance Monitor, pour vous assurer que votre base de données et vos réseaux sont efficaces tout en réduisant l’impact sur vos utilisateurs.

Vous pouvez accéder à une version d’évaluation gratuite de DPA sur le site Web de SolarWinds.

dpa-table-tuning-best-practices

Accélération des requêtes SELECT dans Oracle

La meilleure approche du réglage de votre base de données Oracle est de s’intéresser au réglage SQL, en particulier à la requête SELECT. Une fois que vous avez optimisé vos requêtes SQL, votre base de données Oracle peut fonctionner plus rapidement.

Il convient également de veiller à indexer autant que possible, en particulier pour les prédicats des clauses JOIN, WHERE, ORDER BY et GROUP BY. En outre, évitez absolument toutes les analyses de grandes tables, car plus vous analysez, plus la base de données est lente à répondre et présente de mauvaises performances.

L’utilisation de l’outil approprié permet de profiter d’un processus plus simple et facile. Je recommande SolarWinds Database Performance Analyzer, qui dispose de fonctionnalités spécialement conçues pour l’optimisation des requêtes SQL. DPA permet d’identifier les instructions SQL sur lesquelles vous devez vous concentrer, qui causent le plus de problèmes. Vous pouvez ainsi résoudre les problèmes rapidement et efficacement, avant qu’ils affectent les performances des applications et des services pour les utilisateurs.

Enfin, assurez-vous de clarifier et de confirmer les exigences professionnelles d’entrée de jeu, afin que vos requêtes aient un but spécifique. Le fait d’avoir des objectifs professionnels clairs lors de l’interrogation de la base de données rend vos demandes plus précises, plus rapides et plus efficaces.

Related Posts