6

Je voudrais être en mesure de tracer un graphique d'appel d'une procédure stockée. Je ne suis pas intéressé par chaque détail, et je ne suis pas concerné par SQL dynamique (bien qu'il serait cool de le détecter et de l'ignorer peut-être ou de le marquer comme tel.)Existe-t-il un outil gratuit permettant de visualiser la logique d'une procédure stockée dans SQL Server 2008 R2?

Je voudrais que l'outil génère un arbre pour moi, étant donné le nom du serveur, nom de la base de données, nom de la procédure stockée, un "arbre d'appel", qui comprend:

  • Procédure stockée parent.
  • Toutes les autres procédures stockées appelées en tant qu'enfant de l'appelant.
  • Chaque table qui est en cours de modification (mise à jour ou supprimée) en tant qu'enfant du proc stocké qui le fait.

Espérons qu'il est clair ce que je suis après; Si non, veuillez demander. S'il n'y a pas un outil qui puisse le faire, alors j'aimerais essayer d'en écrire un moi-même. Python 2.6 est mon langage de choix, et j'aimerais utiliser autant que possible les bibliothèques standard. Aucune suggestion?

EDIT: Aux fins de bounty Avertissement: La syntaxe SQL est COMPLEXE. J'ai besoin de quelque chose qui peut analyser toutes sortes de SQL 2008, même si cela semble stupide. Pas de cas coin barré :)

EDIT2: Je serais OK si tout ce qui me manque est graphique.

Répondre

7

** Je viens de me rendre compte que vous cherchiez peut-être une bibliothèque Python capable de faire cela pour vous. Si oui, je m'excuse pour la réponse ratée lol, mais si vous essayez de visualiser une base de données afin que vous puissiez effectuer la maintenance, alors ma réponse est la même :) **

Ce n'est pas gratuit, mais je vous assure SQL Dependency Tracker de RedGate vaut bien l'argent. Il produit un graphique comme vous décrivez, vous permettant de voir tous les participants dans chaque procédure, clé, vue, déclencheur, etc. logiciel impressionnant: http://www.red-gate.com/products/sql-development/sql-dependency-tracker/

Je sais que vous avez dit libre, mais j'étais dans le même bateau comme vous il y a plusieurs années et regardé un peu pour quelque chose qui pourrait faire le travail, libre ou non. Jusqu'à ce que je trouve ce logiciel, rien d'autre ne pouvait faire ce dont j'avais besoin. Je vous encourage fortement à trouver l'argent pour cet outil si vous avez besoin de faire ce genre de chose sur une base régulière.

+0

Combien cela coûte-t-il? Et ont-ils une période d'essai? –

+0

~ 300 $. Essai gratuit de 14 jours. Je n'ai pas trouvé un seul autre outil qui fait ce que cela fait. J'ai trouvé certains qui pourraient produire des diagrammes en suivant les relations entre les tables, mais c'est là qu'ils se sont arrêtés. Aucun autre outil ne lirait réellement le code de la vue/procédure stockée/fonction pour construire des graphiques de dépendance, ce dont j'avais besoin depuis que je cherchais à supprimer les vues dupliquées, SP, etc. qui commençaient à encombrer ma base de données. Celui-ci le fait pour à peu près tous les types d'objets sur le serveur. –

+0

Je vois que vous êtes toujours à la recherche d'une réponse à ce sujet. Dependency Tracker peut apparemment exporter en XML. Bien que je ne puisse pas dire avec certitude à quoi ressemblera ce fichier XML, un autre utilisateur semble avoir trouvé une solution pour obtenir des dépendances uniques: http://www.red-gate.com/messageboard/viewtopic.php?p=25396 # 25396 Leur soutien mentionne également l'exportation d'une liste de dépendances au format PDF à des fins de reporting: http://www.red-gate.com/supportcenter/Content?p=SQL%20Dependency%20Tracker&c=SQL_Dependency_Tracker/help/2.4/SDT_ExportingDependencyList.htm&toc = SQL_Dependency_Tracker/help/2.4/toc279529.htm –

0

Vous pouvez utiliser SQL Server Management Studio pour afficher le plan de requête réel ou estimé. Il donne une sortie graphique que vous pouvez suivre. Voici une petite introduction: http://www.mssqltips.com/tip.asp?tip=1873

Mise à jour:

Vous pouvez utiliser SQL Server Integration Services (SSIS) pour créer des extraits de données de manière graphique. Vous pouvez également utiliser Microsoft Biztalk Server pour créer des mises en page graphiques complexes qui extraient également des données. Enfin, vous pouvez utiliser WF de Microsoft pour créer des processus automatisés d'une manière graphique pouvant exécuter des fonctions similaires à celles de Biztalk. Hélas, ceux-ci ne sont pas libres :(Si vous avez un abonnement MSDN ils sont :)

Biztalk Carte:. http://geekswithblogs.net/images/geekswithblogs_net/Chilberto/WindowsLiveWriter/BizTalkMapComparisonbetweenTableLoopinga_B5B9/image_6.png

+0

Merci, cela ressemble à un début. Cette question a une prime sur elle, donc je voudrais demander - comment puis-je extraire automatiquement les données dont j'ai besoin à partir du plan d'exécution de la requête en utilisant une sorte de script? Existe-t-il un moyen d'exécuter automatiquement le plan d'exécution de la requête? –

+0

Hmm, le plan d'exécution de la requête n'est pas vraiment conçu pour être un outil d'extraction de données, il est vraiment utilisé pour vous montrer les étapes que SQL Server a prises lors de l'exécution de la requête. Vous pouvez sauvegarder le plan d'exécution (menu contextuel). http://msdn.microsoft.com/en-us/library/ms190646.aspx –

0

SQL Négociateur Pro dispose d'une version lite gratuite à www.aphilen.com Le plein La version est le seul produit qui trouvera toutes les dépendances et ne s'arrêtera pas après avoir trouvé les 10 premières dépendances des enfants.D'autres produits échouent quand il y a une référence circulaire et juste accrocher, ces gars ont couvert cela. Une fonctionnalité intéressante est la possibilité d'ajouter des notes au diagramme afin qu'il puisse être facilement distribué. La version complète n'est pas bon marché, mais nous a permis d'économiser beaucoup d'heures habituellement nécessaires pour déterminer les procédures de base de données complexes. l'apex fournit également un outil soigné

Questions connexes