2009-07-08 9 views
20

Comment utiliser la fonction Explain de DB2? - à la fois pour l'exécuter et pour l'utiliser pour optimiser les requêtes. Existe-t-il un meilleur outil disponible pour DB2?Comment utiliser DB2 Explain?

J'ai déjà créé des requêtes, mais la seule façon dont j'ai dû dire combien de temps elles allaient prendre est de les exécuter et de les chronométrer, ce qui n'est pas idéal.

Modifier: La réponse pour moi s'est avéré être "Vous ne pouvez pas, vous n'avez pas et ne pouvez pas obtenir l'accès." N'aimes-tu pas la bureaucratie?

+0

Vous n'aimez pas DB2? Il est absolument ridicule que vous ayez besoin de certaines tables qui ne sont pas créées par défaut lors de l'installation et qui ne peuvent être créées par quelqu'un avec des droits d'administrateur que pour exécuter un EXPLAIN simple. En MySQL, toute cette administration n'est pas nécessaire. Pourquoi une base de données payante fonctionne-t-elle moins bien qu'une base de données open source? – Frans

Répondre

18

Qu'est-ce que vous cherchez est couvert par deux utilitaires DB2:

  1. Le explain utility, qui montre le plan d'accès et le coût estimé pour une requête spécifique de l'optimiseur (selon les statistiques RUNSTATS actuelles)
  2. Le design advisor, qui recommande des changements structurels pour améliorer les performances d'une ou plusieurs requêtes

les deux utilitaires nécessitent tables spécialisés à créer dans la base de données.

J'ai tendance à utiliser l'utilitaire d'explication plus que le conseiller, surtout si je suis capable de modifier le SQL pour que la requête influence un meilleur plan d'accès. J'utilise l'utilitaire de ligne de commande db2expln pour expliquer les différentes versions d'une requête que j'effectue et comparer leurs coûts. Le plus important est que vos statistiques de table et d'index soient à jour lors de l'exécution d'expliquer ou du conseiller de conception.

3

J'ai toujours trouvé l'exécution de l'utitlity d'explication à partir de la ligne de commande avec le mode '-g' allumé m'a aidé à identifier les problèmes.

Je ne peux pas me rappeler les options maintenant, et IIRC, db2expln est un peu difficile sur la commande {i.e vous ne pouvez pas mettre le nom d'utilisateur après mot de passe !!} - mais ça fonctionne bien.

5

db2expln exemple -database -t -g -f "requête SQL"

Cela a bien fonctionné pour moi.

8

IBM offre Data Studio comme un outil gratuit construit sur eclipse, qui, entre autres avantages comprend une interface graphique pour s'exécuter visuellement expliquer, ainsi que fournir une aide à l'optimisation par l'intermédiaire d'un conseiller de requête.Je recommande fortement d'utiliser Data Studio.

Il est relativement facile de mettre en place les ressources appropriées (tables explain qui doivent être construits, et la liaison qui doivent être fait) en cliquant à droite une source de données connectée, et en choisissant

analyser et régler> configurer pour l'accord> configuration guidée.

enter image description here

Pour générer l'expliquer graphique - il suffit de mettre en évidence votre requête, clic droit et choisissez "Ouvrir Visual Explain":

enter image description here

Pour utiliser le conseiller en question , choisissez "Démarrer le réglage" à la place.Il vous mènera à travers un processus qui générera l'explication, ainsi que recommander toutes les possibilités d'accord qu'il peut déterminer.

enter image description here