6

Chciałbym móc wykreślić graf wywołania procedury przechowywanej. Nie interesuje mnie każdy szczegół i nie interesuje mnie dynamiczny SQL (chociaż byłoby fajnie go wykryć i może go pominąć lub oznaczyć jako taki).Czy istnieje bezpłatne narzędzie, które może pomóc w wizualizacji logiki procedury przechowywanej w SQL Server 2008 R2?

Chciałbym, żeby narzędzie wygenerowało drzewo dla ja, biorąc pod uwagę nazwę serwera, nazwę bazy danych, zapisaną nazwę procesu, "drzewo wywołań", które obejmuje:

  • Procedura przechowywana przez rodzica.
  • Każda inna procedura składowana, która jest wywoływana jako dziecko osoby dzwoniącej.
  • Każda tabela, która jest modyfikowana (aktualizowana lub usuwana) jako dziecko zapisanego procesu, który to robi.

Mam nadzieję, że jasne jest, po co jestem; jeśli nie - proszę pytać. Jeśli nie ma narzędzia, które może to zrobić, to chciałbym spróbować napisać je samemu. Python 2.6 jest moim ulubionym językiem i chciałbym korzystać ze standardowych bibliotek w jak największym stopniu. Jakieś sugestie?

EDYTOWANIE: Dla celów bounty Ostrzeżenie: Składnia SQL jest ZWANY. Potrzebuję czegoś, co potrafi parsować wszystkie rodzaje SQL 2008, nawet jeśli wygląda głupio. Żadne narożne skrzynki nie zostały zablokowane :)

EDIT2: Byłbym OK, jeśli wszystko, czego mi brakuje, to grafika.

Odpowiedz

7

** Właśnie zdałem sobie sprawę, że może szukasz biblioteki Pythona, która może zrobić to za Ciebie. Jeśli tak, przepraszam za nieudaną odpowiedź lol, ale jeśli próbujesz wizualizować DB, możesz wykonać konserwację, wtedy moja odpowiedź jest taka sama :) **

To nie jest za darmo, ale zapewniam cię SQL Dependency Tracker firmy RedGate jest wart swojej ceny. Tworzy wykres, który opisujesz, umożliwiając zobaczenie wszystkich uczestników każdej procedury, klucza, widoku, wyzwalacza itp. Niesamowite oprogramowanie: http://www.red-gate.com/products/sql-development/sql-dependency-tracker/

Wiem, że powiedziałeś za darmo, ale byłem w tym samym łódka jak ty kilka lat temu i wyglądała całkiem nieźle na coś, co może wykonać pracę, za darmo lub nie. Dopóki nie znalazłem tego oprogramowania, nic więcej nie mogło zrobić tego, czego potrzebowałem. Gorąco zachęcam do znalezienia pieniędzy na to narzędzie, jeśli chcesz robić tego typu rzeczy regularnie.

+0

Ile to kosztuje? Czy oni mają okres próbny? –

+0

~ 300 USD. 14-dniowy bezpłatny okres próbny. Nie znalazłem żadnego innego narzędzia, które robi to, co robi. Zauważyłem, że niektóre z nich mogą tworzyć diagramy, podążając za relacjami między tabelami, ale właśnie tam się zatrzymały. Żadne inne narzędzie nie odczytałoby kodu z widoku/zapisanej procedury/funkcji w celu zbudowania wykresów zależności, co było mi potrzebne, ponieważ szukałem usuwania duplikatów widoków, SP, itd., Które zaczęły zaśmiecać moją DB. Ten robi to dla prawie każdego rodzaju obiektu na serwerze. –

+0

Widzę, że wciąż szukasz odpowiedzi na ten temat. Dependency Tracker najwyraźniej może eksportować jako XML. Chociaż nie mogę powiedzieć na pewno, jak będzie wyglądać ten xml, inny użytkownik prawdopodobnie znalazł rozwiązanie pozwalające uzyskać unikalne zależności: http://www.red-gate.com/messageboard/viewtopic.php?p=25396 # 25396 Ich wsparcie wspomina również o wyeksportowaniu listy zależności w formacie PDF do celów raportowania: 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

Możesz użyć SQL Server Management Studio, aby wyświetlić rzeczywisty lub szacunkowy plan zapytania. Daje graficzne wyjście, które można śledzić. Oto mały elementarz: http://www.mssqltips.com/tip.asp?tip=1873

Aktualizacja:

Można użyć SQL Server Integration Services (SSIS), aby utworzyć ekstrakty danych w formie graficznej mody. Możesz również użyć Microsoft Biztalk Server do tworzenia złożonych układów graficznych, które również pobierają dane. Wreszcie, możesz użyć WF Microsoftu do tworzenia zautomatyzowanych procesów w sposób graficzny, który może wykonywać podobne funkcje, jak BizTalk. Niestety, nie są one wolne :(Jeśli masz subskrypcji MSDN są :)

BizTalk mapa. http://geekswithblogs.net/images/geekswithblogs_net/Chilberto/WindowsLiveWriter/BizTalkMapComparisonbetweenTableLoopinga_B5B9/image_6.png

+0

Dziękuję, to wygląda na początek. To pytanie ma nagrodę, więc chciałbym zapytać - w jaki sposób automatycznie wyodrębnić potrzebne dane z planu wykonania kwerendy za pomocą jakiegoś skryptu? Czy istnieje sposób automatycznego uruchamiania planu wykonywania kwerend? –

+0

Hmm, plan wykonania kwerendy nie jest tak naprawdę zaprojektowany, aby być narzędziem do wyodrębniania danych, naprawdę służy do pokazania, jakie czynności wykonał SQL Serve r przy uruchamianiu zapytania. Możesz zapisać plan wykonania (menu prawego przycisku myszy). http://msdn.microsoft.com/en-us/library/ms190646.aspx –

0

SQL Negocjator Pro posiada darmowa wersja lite na www.aphilen.com Pełne wersja jest jedynym produktem, który znajdzie wszystkie zależności i nie zatrzyma się po znalezieniu pierwszych 10 zależności podrzędnych.Inne produkty zawodzą, gdy pojawia się okólnik i po prostu się zawieszają, ci faceci to ukryli. Również zgrabną cechą jest możliwość dodawania notatek do diagramu, dzięki czemu można go łatwo dystrybuować. Pełna wersja nie jest tania, ale zaoszczędziła nam wielu godzin, które zwykle wymagają wykonania złożonych procedur bazy danych. apex zapewnia również schludne narzędzie

Powiązane problemy