2009-08-16 5 views
4

Ich finde mich oft viel Zeit herauszufinden, warum bestimmte SUM() - Aggregate in SQL-Abfragen falsch zusammenfassen. Dieses Problem tritt oft auf, wenn ich beim Hinzufügen eines JOINs nicht aufpasse, was zu doppelten Werten führt. Wenn ich mit einer großen Abfrage mit vielen JOINs, verschachtelten Unterabfragen, GROUP BYs usw. arbeite, wird das Debuggen sehr kompliziert.Das beste Werkzeug zum Schreiben komplexer SQL-Abfragen?

Ich möchte wissen, ob es ein Tool gibt, die es einfacher zu konstruieren und zu debuggen komplizierte Abfragen machen, indem die Daten grafisch veranschaulicht werden aufsummiert, miteinander verbunden usw.

Ein Beispiel dessen, was ich bin Suche nach ist in http://www.imada.sdu.dk/~sorenh07/misc/datacentric-querytool.png

dargestellt Es ist natürlich nur ein frühes Modell, und ich bin in jedem Kommentar dazu interessiert.

+0

Siehe auch http://StackOverflow.com/Questions/1239530/ –

+0

** Testdaten ** , testen, Einführung ** Ansichten ** - mit denen zu vereinfachen und komplexe Abfragen erstellen. –

Antwort

2

IMHO, das beste "Werkzeug" dafür ist ein Lehrbuch. Dies ist einer dieser Bereiche, wo die Software das nicht für Sie tun kann. Sicher, es kann einfach bauen wählt & Joins, aber keine Aggregate Funktionen oder Gruppierungen, oder Sub-wählt, etc. Dafür müssen Sie lernen, es auf die altmodische Art zu tun - von Hand/Wetware. Ich empfehle: "Head First SQL" von Lynn Beighley über O'Reilly Press.

  1. Holen Sie sich ein Buch.
  2. Installieren Sie die Datenbank Ihrer Wahl.
  3. Importieren Sie einige Testdaten.
  4. Versuchen Sie, Abfragen mit so vielen Funktionen wie möglich auszuführen.

Üben, üben, üben.

+0

Ich stimme sicherlich mit dem überein, was Sie sagen ... Ich habe viel Erfahrung mit SQL und Datenbanken im Allgemeinen - sowohl die Syntax als auch die Theorie dahinter - alles davon lernte altmodisch :-). Was ich möchte, ist eine Software, um die vorläufigen Datensätze, aus denen ein Ergebnis erstellt wird, zu enthüllen, um leichter zu erkennen, wo Werte falsch dupliziert, gefiltert usw. werden.Das heißt, ich hätte gerne ein Tool, das eine * datenzentrische * Ansicht der Abfrage (mit den tatsächlich verwendeten Daten) und nicht rein * schemazentrisch * (nur anzeigen, welche Tabellen verwendet werden usw.) geben kann. –

+0

Ich benutze Navicat, um die Ergebnisse meiner Abfragen zu sehen. Ich habe auch Eclipse Database Explorer Plugin verwendet. –

1

Jede Datenbank verfügt über einen internen Befehl zum Analysieren komplexer sqls, wobei erläutert wird, welcher Join nicht effizient ist oder mehr Zeit für die Ausführung benötigt.

Ex: Wenn Sie MySQL verwenden, werden dann Befehl lautet: erklären

+0

Für Oracle können Sie den Comman "Explain Plan" verwenden – Niger

1

TOAD ist wahrscheinlich das beste für diese Art der Sache Multi-Datenbank-Tool, ich es aber nicht glauben ist, sich jeder Ersatz für gründlich groking SQL. Wenn Sie Schwierigkeiten beim Erstellen einer Abfrage haben, ist es nahezu unmöglich, sie effektiv zu debuggen.

0

Wenn meine Abfragen zu hässlich werden, finde ich es hilfreich, einen der vielen SQL beautifiers zu verwenden, die da draußen sind. Diese werden nicht Grafiken für Sie drucken, aber nur richtige Einrückung, Syntax-Highlighting und Klammern werden Ihnen helfen, ein gutes Geschäft.

0

Ich benutze ein visuelles Tool namens "Code Factory für MySQL". Es ist nur für MySQL, aber auch ein großartiges Lernwerkzeug.

Verwandte Themen