2013-06-21 6 views
10

Angesichts der Tatsache, dass viele Frameworks komplizierte (und vielleicht nicht so gut lesbare/logische) SQL-Abfragen erstellen, scheint es ein hilfreiches Tool zu sein, visuell zu zeigen, wie die Joins durchgeführt wurden. Aber ich habe ein solches Werkzeug nicht gefunden.Gibt es Werkzeuge, um einen komplizierten SQL-Join zu visualisieren?

nahm ich eine Abfrage, die eine Menge von Tabellen enthalten und erstellt eine Grafik als ein Beispiel dessen, was ich denke, würde die Ausgabe von einem solchen Werkzeug sein: manually generated visualization

Der Text auf die Links, die Feldnamen sind, dass werden im Join verwendet. Die fettgedruckten Elemente sind Eingaben für die Abfrage. Die Tabellennamen, die auf Ziffern enden, sind nur Wiederholungsinstanzen der gleichen Tabelle (dh Partner und Partner2 sind die gleiche Tabelle, nur ein Teil der Abfrage mehr als einmal).

Ich möchte in der Lage sein, eine SQL-Abfrage in ein Werkzeug zu löschen und ein Diagramm wie folgt zu sehen. Möglich?

Antwort

0

Sie können diese Art der Ausgabe mit SQL Analyzer mit SQL Server erhalten. Etwas Ähnliches existiert für postgresql: Ich habe noch nie etwas graphisches für MySql oder Oracle gesehen.

Mit anderen Worten: nichts generisches (was man vielleicht angesichts der komplexen und individuellen Natur der Datenbankoptimierer-Engines erwarten würde).

+0

ich auf Oracle bin. Dave, kannst du das Diagramm sehen? Ich habe nur ein einziges Pixel. Oh, warte, es ist meine schöne Megacorp-Blockade imgur. – Dale

+0

@Dale: Nun, in Oracle kann man den Plan einfach erklären: aber das Übersetzen in eine grafische Ausgabe ist nicht out of the box (zumindest nicht das, was mir bekannt ist). – davek

+0

Vielleicht ist das ein Werkzeug für mich zu schreiben ... Plan zur Visualisierung zu erklären. Wenn ich etwas Freizeit habe, hahahah! – Dale

1

Ich fand dieses Tool, es könnte nützlich sein.

http://queryviz.com/online/

Obwohl die SQL-Syntax sieht unterstützte recht begrenzt sein ..

+1

Ich würde sagen, ** sehr ** begrenzt: das Werkzeug nicht einmal den 'JOIN' Operator –

+0

Bist du sicher? In ihren Beispielen sind viele JOINs angegeben. – Ning

+0

Ich spreche über den 'JOIN'-Operator (' select * von einem Join b auf a.id = b.id'), nicht die total veralteten impliziten Joins in der 'where'-Klausel. –

Verwandte Themen