2013-06-21 14 views
10

Biorąc pod uwagę fakt, że wiele frameworków tworzy skomplikowane (a może nie tak czytelne/logiczne) zapytania SQL, wydaje się, że posiadanie narzędzia do wizualnego pokazania, w jaki sposób połączenia zostały wykonane, może być przydatnym narzędziem. Ale nie znalazłem takiego narzędzia.Czy są jakieś narzędzia do wizualizacji skomplikowanego sprzężenia SQL?

Wziąłem kwerendę, która zawierała wiele tabel i stworzył grafikę jako przykład tego, co myślę, że byłoby wyjście z takiego narzędzia: manually generated visualization

tekst na linki są nazwy pól, które są używane w złączeniu. Pogrubione elementy są wejściami do zapytania. Nazwy tabel kończące się cyframi to tylko powtarzające się przypadki tej samej tabeli (np. Partner i Partner2 to ta sama tabela, tylko część zapytania więcej niż jeden raz).

Chciałbym móc upuścić kwerendę SQL do narzędzia i zobacz taki schemat. Możliwy?

Odpowiedz

0

Możesz uzyskać ten rodzaj danych wyjściowych za pomocą SQL Analyzer z SQL Server. Coś podobnego istnieje dla postgresql: Nigdy nie widziałem nic graficznego dla MySql lub Oracle.

Innymi słowy: nic generycznego (co jest prawdopodobnie tym, czego można by się spodziewać ze względu na złożoną i indywidualną naturę silników optymalizatorów bazy danych).

+0

jestem na Oracle. Dave, widzisz diagram? Właśnie mam pojedynczy piksel. Och, czekaj, to mój uroczy megacorp blokujący imgur. – Dale

+0

@Dale: cóż, w Oracle możesz łatwo uzyskać plan wyjaśniający: tłumaczenie tego na wyjście graficzne nie jest dostępne po wyjęciu z pudełka (przynajmniej nie o tym wiem). – davek

+0

Może to dla mnie narzędzie do napisania ... wyjaśnienia planu do wizualizacji. Kiedy dostaję trochę wolnego czasu, hahahah! – Dale

1

Znalazłem to narzędzie, może być przydatne.

http://queryviz.com/online/

Chociaż składnia SQL obsługiwane wydaje się być dość ograniczone ..

+1

Powiedziałbym, że ** bardzo ** ograniczony: narzędzie nie obsługuje nawet operatora 'JOIN'. –

+0

Jesteś pewny? W ich przykładach podano wiele JOINÓW. – Ning

+0

Mówię o operatorze 'JOIN' (' wybierz * z połączenia b na a.id = b.id'), a nie całkowicie przestarzałe połączenia niejawne w klauzuli 'where'. –

Powiązane problemy