Bonjour,
Mon problème est le suivant: je cherche un équivalent de la fonction EXPLAIN (de MySQL) en SQLServer.
Est-ce possible? Pouvez-vous m'aider?
Bonjour,
Mon problème est le suivant: je cherche un équivalent de la fonction EXPLAIN (de MySQL) en SQLServer.
Est-ce possible? Pouvez-vous m'aider?
Si j'ai bien compris la fonction MySQL... la traduction devrait etre:
SET SHOWPLAN_XML ON
Vous avez 7 méthodes pour obtenir un plan de requêtes dans SSMS (SQL Server management Studio) :
1 - graphique
1.1 - estimation (pas d'exécution) => CTRL + L (ou menu "Requête" / "Afficher le plan d'exécution estimé")
1.2 - plan exécuté => CTRL + M (ou "Requête" / "Inclure le plan d'exécution réel")
Dans les deux cas, vous pouvez sauvegarder le plan résultant sous forme d'un fichier XML.
2 - non graphique
2.1 - estimé :
2.1.1 - sous forme textuelle : SET SHOWPLAN_TEXT ON
2.1.2 - sous forme XML : SET SHOWPLAN_XML ON
2.1.3 - sous forme textuelle détaillée : SET SHOWPLAN_ALL ON
2.2 - réalisé :
2.2.1 - sous forme textuelle : SET STATISTICS PROFILE ON
2.2.2 - sous forme XML : SET STATISTICS XML ON
(utiliser OFF pour désactiver)
La commande qui correspond le plus à EXPLAIN est :
- SET SHOWPLAN_ALL ON (estimé)
- SET STATISTICS PROFILE ON (réalisé)
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Merci pour vos réponses, mais je débute et j'ai encore une petite question.
En fait, je travaille sur une application en java qui traite du sqlserver et je voudrais donc stocker dans un Objet java ce qui est renvoyé par SET SHOWPLAN_XML sur une seule requête. Est-ce possible? si oui, dans quel Objet et où l'insérer dans le code? Après SHOWPLAN_XML ON? la requête? OFF?
Essayez comme ceci à travers une IHM :
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SET SHOWPLAN_XML ON; DECLARE @T TABLE (C XML); INSERT INTO @T EXEC ('SELECT * FROM sys.databases'); SELECT * FROM @T;
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonjour,
Petite remarque : il manque un GO après le SET SHOWPLAN_XML ON
@++![]()
Partager