2010-12-14 12 views
6

Mi piacerebbe essere in grado di tracciare un grafico di chiamata di una stored procedure. Non sono interessato a tutti i dettagli, e non mi interessa SQL dinamico (anche se sarebbe bello rilevarlo e saltarlo forse o contrassegnarlo come tale.)Esiste uno strumento gratuito che può aiutare a visualizzare la logica di una stored procedure in SQL Server 2008 R2?

Vorrei lo strumento per generare un albero per me, dato il nome del server, nome db, nome stored procedure, un "albero di chiamata", che comprende:

  • Parent stored procedure.
  • Ogni altra stored procedure che viene chiamata come figlio del chiamante.
  • Ogni tabella che viene modificata (aggiornata o cancellata da) come figlia del processo memorizzato che lo fa.

Speriamo che sia chiaro cosa cerco; in caso contrario, si prega di chiedere. Se non c'è uno strumento in grado di farlo, allora mi piacerebbe provare a scriverne uno io stesso. Python 2.6 è il mio linguaggio preferito e mi piacerebbe usare il più possibile le librerie standard. Eventuali suggerimenti?

MODIFICA: Ai fini della taglia Avvertenza: la sintassi SQL è COMPLESSA. Ho bisogno di qualcosa che possa analizzare tutti i tipi di SQL 2008, anche se sembra stupido. Nessun caso d'angolo escluso :)

EDIT2: Sarei OK se tutto ciò che mi manca è la grafica.

risposta

7

** Ho appena realizzato che potresti cercare una libreria Python in grado di farlo per te. Se è così, mi scuso per la risposta dud lol, ma se stai cercando di visualizzare un DB in modo da poter eseguire la manutenzione, allora la mia risposta è la stessa :) **

Non è gratuito, ma ti assicuro SQL Dipendenza Tracker da RedGate vale la pena. Produce un grafico come quello che stai descrivendo, permettendoti di vedere tutti i partecipanti in ogni procedura, chiave, vista, trigger, ecc. Software impressionante: http://www.red-gate.com/products/sql-development/sql-dependency-tracker/

So che hai detto libero, ma ero nello stesso barca come te diversi anni fa e sembrava un po 'per qualcosa che potesse fare il lavoro, gratis o meno. Fino a quando ho trovato questo software, nient'altro poteva fare ciò di cui avevo bisogno. Vi incoraggio vivamente a trovare i soldi per questo strumento se avete bisogno di fare questo genere di cose su base regolare.

+0

Quanto costa? E hanno un periodo di prova? –

+0

~ $ 300. 14 giorni di prova gratuita. Non ho trovato un singolo altro strumento che faccia ciò che fa. Ne ho trovati alcuni in grado di produrre diagrammi seguendo le relazioni tra i tavoli, ma è lì che si sono fermati. Nessun altro strumento in realtà leggerà il codice dalla vista/stored procedure/funzione per costruire grafici di dipendenza, che è ciò di cui avevo bisogno dal momento che stavo cercando di rimuovere viste duplicate, SP, ecc. Che avevano iniziato a ingombrare il mio DB. Questo lo fa praticamente per ogni tipo di oggetto sul server. –

+0

Vedo che stai ancora cercando una risposta su questo. Apparentemente il Dipendente Tracker può esportare come XML. Anche se non posso dire con certezza che aspetto avrà questo xml, un altro utente sembra aver trovato una soluzione per ottenere dipendenze uniche: http://www.red-gate.com/messageboard/viewtopic.php?p=25396 25396 Il loro supporto menziona anche l'esportazione di un elenco di dipendenze in formato PDF per scopi di 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

È possibile utilizzare SQL Server Management Studio per visualizzare il piano di query effettivo o stimato. Fornisce un output grafico che puoi seguire. Ecco un piccolo innesco: http://www.mssqltips.com/tip.asp?tip=1873

Aggiornamento:

È possibile utilizzare SQL Server Integration Services (SSIS) per creare estratti di dati in maniera grafica. È inoltre possibile utilizzare Microsoft Biztalk Server per creare layout grafici complessi che estraggono anche i dati. Infine, è possibile utilizzare WF di Microsoft per creare processi automatizzati in modo grafico che possono svolgere funzioni simili a Biztalk. Ahimè, queste non sono liberi :(Se si dispone di un abbonamento MSDN che sono :)

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

+0

Grazie, sembra un inizio. Questa domanda ha una generosità su di esso, quindi mi piacerebbe chiedere: come faccio ad estrarre automaticamente i dati di cui ho bisogno dal piano di esecuzione della query utilizzando una sorta di script? Esiste un modo per eseguire automaticamente il piano di esecuzione della query? –

+0

Hmm, il piano di esecuzione della query non è realmente progettato per essere uno strumento di estrazione dati, è davvero utilizzato per mostrare quali passi sono stati eseguiti da SQL Serve durante l'esecuzione della query. È possibile salvare il piano di esecuzione (menu di scelta rapida). http://msdn.microsoft.com/en-us/library/ms190646.aspx –

0

SQL negoziatore Pro ha una versione lite gratuita presso www.aphilen.com La piena la versione è l'unico prodotto là fuori che troverà tutte le dipendenze e non si fermerà dopo aver trovato le prime 10 dipendenze figlio.Altri prodotti falliscono quando c'è un riferimento circolare e semplicemente si bloccano, questi ragazzi lo hanno coperto. Inoltre, una funzionalità accurata è la possibilità di aggiungere note al diagramma in modo che possa essere facilmente distribuito. La versione completa non è economica ma ci ha risparmiato un sacco di ore di solito necessarie a capire complesse procedure di database. apice fornisce anche uno strumento pulito

Problemi correlati