Maison >base de données >Oracle >Résumer le plan d'exécution des requêtes Oracle
Cet article vous apporte des connaissances pertinentes sur Oracle. Il présente principalement le contenu pertinent sur le plan d'exécution des requêtes. Il s'agit des étapes et du processus spécifiques d'exécution des instructions SQL dans la base de données. être utile à tout le monde.
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Le plan d'exécution (plan d'exécution) est également appelé plan de requête (plan de requête), qui correspond aux étapes et au processus spécifiques permettant à la base de données d'exécuter des instructions SQL. Le plan d'exécution d'une instruction de requête SQL comprend principalement :
Comment accéder à la table. La base de données accède aux données de la table via des index ou des analyses de table complètes.
Méthode de connexion multi-tables. Quel algorithme de connexion est utilisé par la base de données pour connecter les tables, y compris la séquence d'accès séquentiel de plusieurs tables.
Comment mettre en œuvre des opérations telles que le regroupement, l'agrégation et le tri.
Bien que différentes bases de données adoptent différentes méthodes d'implémentation pour le processus d'exécution des requêtes SQL, une instruction de requête doit généralement être traitée par l'analyseur, l'optimiseur et l'exécuteur et renvoyer le résultat final. En même temps, divers caches peuvent également l'être. utilisé pour améliorer les performances d’accès.
En termes simples, une instruction de requête commence à partir de la soumission du client jusqu'à ce que le serveur renvoie le résultat final. L'ensemble du processus est à peu près comme indiqué dans la figure.
Tout d'abord, le client soumet l'instruction SQL. Avant cela, le client doit se connecter au serveur de base de données. Le connecteur sur la figure est le composant responsable de l'établissement et de la gestion des connexions client.
Ensuite, l'analyseur (analyseur) analyse les différents composants de l'instruction SQL, effectue une analyse syntaxique et vérifie si la syntaxe de l'instruction SQL est conforme à la spécification.
Par exemple, le mot-clé FROM dans l'instruction suivante est incorrectement écrit sous la forme FORM :
Dans ce cas, tous les systèmes de gestion de base de données renverront une erreur de syntaxe.
L'optimiseur utilise ensuite les informations statistiques collectées par la base de données pour déterminer la meilleure façon d'exécuter l'instruction SQL. Par exemple, s'il faut accéder à une seule table via un index ou une analyse complète de la table, quel ordre utiliser pour connecter plusieurs tables, comment trier les données, etc.
L'optimiseur est un composant clé qui détermine les performances des requêtes, et les informations statistiques de la base de données constituent la base du jugement de l'optimiseur.
Enfin, l'exécuteur appelle le module d'exécution correspondant pour obtenir les données selon le plan d'exécution optimisé, et renvoie le résultat au client.
Dans la base de données Oracle, nous pouvons également utiliser la commande EXPLAIN PLAN FOR pour générer le plan d'exécution, mais nous devons exécuter deux commandes :
EXPLAIN PLAN FOR SELECT * FROM T_USER1 t where t.user_name = 'Admin'; SELECT * FROM TABLE(dbms_xplan.display);
Utilisez EXPLAIN La commande PLAN FOR génère un plan d'exécution et le stocke dans la table système PLAN_TABLE, puis affiche le plan d'exécution généré via une instruction de requête.
Où dbms_xplan.display est une fonction du système Oracle. Les résultats renvoyés montrent que l'instruction trouve les données via l'analyse de la plage d'index « SYS_C0016771 » dans Oracle.
Dans l'outil de développement de base de données Oracle PL/SQL couramment utilisé, sélectionnez un script SQL et appuyez sur la touche F5 pour afficher automatiquement les informations du plan d'exécution du script, suivez la méthode 1 Les résultats de la requête sont les mêmes.
Dans la base de données Oracle, nous pouvons interroger l'index et les informations de champ associées via les tables système user_indexes et user_ind_columns.
SELECT * FROM user_indexes; SELECT * FROM user_ind_columns;
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!