2013-06-21 16 views
10

Dato che molti framework creeranno query SQL complicate (e forse non leggibili/logiche), sembrerebbe che avere uno strumento per mostrare visivamente come i join siano stati fatti potrebbe essere uno strumento utile. Ma non ho trovato uno strumento del genere.Esistono strumenti per visualizzare un complicato join SQL?

ho preso una query che comprendeva un sacco di tavoli e ha creato una grafica come un esempio di quello che penso sarebbe l'uscita da un tale strumento: manually generated visualization

Il testo sui link sono i nomi dei campi che sono usati nel join. Gli elementi in grassetto sono input alla query. I nomi delle tabelle che terminano con cifre sono solo ripetizioni della stessa tabella (ad es. Partner e Partner2 sono la stessa tabella, solo una parte della query più di una volta).

Vorrei essere in grado di rilasciare una query SQL in uno strumento e vedere un diagramma come questo. Possibile?

risposta

0

È possibile ottenere questo tipo di output utilizzando SQL Analyzer con SQL Server. Esiste qualcosa di simile per postgresql: non ho mai visto nulla di grafico per MySql o Oracle.

In altre parole: niente di generico (che è forse ciò che ci si aspetterebbe data la natura complessa e individuale dei motori di ottimizzazione del database).

+0

Sono su Oracle. Dave, puoi vedere il diagramma? Ho appena ottenuto un singolo pixel. Oh, aspetta, è la mia bella megacorp a bloccare l'imgur. – Dale

+0

@Dale: beh, in Oracle è possibile ottenere il piano di spiegazioni abbastanza facilmente: ma la traduzione in output grafico non è disponibile out of the box (almeno, non che ne sia a conoscenza). – davek

+0

Forse è uno strumento per me scrivere ... spiegare il piano di visualizzazione. Quando avrò del tempo libero, hahahah! – Dale

1

Ho trovato questo strumento, potrebbe essere utile.

http://queryviz.com/online/

Anche se la sintassi SQL sguardi sostenuto di essere molto limitata ..

+1

Direi ** very ** limited: lo strumento non ha nemmeno l'operatore 'JOIN' –

+0

Sei sicuro? Ci sono molti JOIN nei loro esempi dati. – Ning

+0

Sto parlando dell'operatore 'JOIN' (' select * da un join b su a.id = b.id'), non dei join impliciti del tutto obsoleti nella clausola 'where'. –

Problemi correlati