Tous les produits
Search
Centre de documentation

Lindorm:EXPLAIN

Dernière mise à jour :Aug 11, 2026

Utilisez la commande EXPLAIN pour afficher le plan d'exécution d'une instruction SQL sans l'exécuter. Cette approche s'avère utile lors de l'optimisation des requêtes, par exemple pour vérifier si un index est exploité efficacement.

Moteurs et versions compatibles

  • La commande EXPLAIN est prise en charge par LindormTable et LindormTSDB.

  • Les options de profondeur du plan (WITH TYPE et WITHOUT IMPLEMENTATION) nécessitent LindormTable version 2.6.3 ou ultérieure, ainsi que Lindorm SQL version 2.6.4 ou ultérieure. Pour consulter la version de votre instance Lindorm SQL, reportez-vous à la section Versions SQL.

Syntaxe

explain_statement         ::= EXPLAIN [ PLAN ] [ explain_depth_expression ]
                              [ FOR ] select_statement;
explain_depth_expression  ::= { WITH TYPE | WITHOUT IMPLEMENTATION }

Paramètres

Profondeur du plan

Le plan d'exécution renvoyé par la commande EXPLAIN comporte trois niveaux de profondeur. Utilisez l'expression optionnelle explain_depth_expression pour sélectionner le niveau souhaité.

Profondeur Expression Cas d'utilisation
Plan physique (aucune) Optimisation générale des requêtes. Renvoie le plan entièrement optimisé après application des filtres par l'optimiseur.
Plan logique WITHOUT IMPLEMENTATION Débogage de la structure de la requête avant optimisation. Renvoie le plan logique non optimisé.
Plan de type WITH TYPE Inspection rapide des types de colonnes du jeu de résultats sans afficher le plan complet. Renvoie uniquement les types de chaque colonne du jeu de résultats.

Instruction SELECT

Le paramètre select_statement correspond à la requête dont vous souhaitez visualiser le plan d'exécution.

Exemples

Les exemples suivants s'appuient sur la table ci-dessous :

CREATE TABLE test (
    p1 VARCHAR(255) NOT NULL,
    c1 VARCHAR(255),
    PRIMARY KEY (p1)
);

Avec les données suivantes :

INSERT INTO test (p1, c1) VALUES
('3abc9378', '10'),
('3def9378', NULL),
('3ghi1234', '15'),
('3jkl5678', NULL),
('3mno9378', '20'),
('3pqr0000', '25'),
('3stu9378', '30'),
('3vwx0000', NULL),
('3yz_9378', '35'),
('3_1239378', '40');

Chacun des trois exemples exécute la commande EXPLAIN sur la même requête, mais avec un niveau de profondeur différent.

Afficher le plan physique

Cette commande renvoie le plan d'exécution optimisé. Privilégiez cette option pour la plupart des tâches d'optimisation de requêtes.

EXPLAIN SELECT POSITION('9378' IN p1) AS lp, COUNT(c1) FROM (SELECT * FROM test WHERE p1 like '3_%') GROUP BY lp ORDER BY lp;

Afficher le plan logique

Cette commande renvoie le plan logique non optimisé. Utilisez-la lorsque vous devez inspecter la structure brute de la requête avant sa réécriture par l'optimiseur.

EXPLAIN WITHOUT IMPLEMENTATION FOR SELECT POSITION('9378' IN p1) AS lp, COUNT(c1) FROM (SELECT * FROM test WHERE p1 like '3_%') GROUP BY lp ORDER BY lp;

Afficher le plan de type

Cette commande renvoie uniquement les types des colonnes du jeu de résultats. Elle permet une vérification rapide des types sans charger l'intégralité du plan.

EXPLAIN WITH TYPE FOR SELECT POSITION('9378' IN p1) AS lp, COUNT(c1) FROM (SELECT * FROM test WHERE p1 like '3_%') GROUP BY lp ORDER BY lp;