Was sind die Vorteile & Nachteile einer Verknüpfung oder einer Unterabfrage?

January 19

Was sind die Vorteile & Nachteile einer Verknüpfung oder einer Unterabfrage?

Eine Unterabfrage ist eine Abfrage in eine andere Abfrage. Eine Unterabfrage kann auch einer anderen Unterabfrage enthalten. Diese sind als "verschachtelte" Unterabfragen bezeichnet. Eine Verknüpfung ist, wenn zwei oder mehr Tabellen in der "Von"-Klausel der Abfrage verwiesen werden. Verschiedene Datenbank-Engines können Joins und Unterabfragen unterschiedlich optimieren. Beispielsweise wird DB2s-Optimierer eine Unterabfrage in einen Join verwandeln, wenn bestimmte Kriterien erfüllt sind. In einigen Fällen ergibt ein Join bessere Leistung als eine Unterabfrage.

Was macht eine Unterabfrage

Eine Unterabfrage ist eine "SELECT"-Anweisung innerhalb der "WHERE" oder "Mit"-Klausel einer äußeren Anweisung "Zusammenführen" oder "Löschen" auf "Einfügen", "Aktualisieren". Die Unterabfrage wird auch die "innere Abfrage" oder "innere Select." genannt. Die Unterabfrage kann eine "FROM"-Klausel mit einer oder mehreren Tabellen und kann optional ein "wo", "GROUP BY" oder "Haben"-Klausel aufweisen. Es wird immer in Klammern eingeschlossen.

Vor- und Nachteile von Unterabfragen

Unterabfragen sind von Vorteil, da sie die Abfrage strukturieren zu jedem Teil der Anweisung zu isolieren, führen den gleichen Vorgang, der würde normalerweise erfordern komplexe Verknüpfungen und Gewerkschaften und sind einfacher zu lesen. Unterabfragen waren auch die Grundlage für den Namen "Structured Query Language" (SQL) wegen ihrer leicht lesbare Struktur. Ein Nachteil ist, dass Sie keiner Tabelle ändern und wählen Sie aus der gleichen Tabelle innerhalb einer Unterabfrage in einer SQL-Anweisung. Unterabfragen können auch Ausführung länger dauert, als ein Join wegen wie der Datenbank-Optimierer diese verarbeitet.

Was macht eine Verknüpfung

Die meisten Unterabfragen in Joins umgeschrieben werden können, und die meisten Joins können als Unterabfragen umgeschrieben werden. Eine Verknüpfung wird durch eine ähnliche Spalte zwei oder mehr Tabellen definiert. Tabellen sind in der Regel über Primär-und Fremdschlüssel verknüpft. Z. B. möglicherweise eine Employee-Tabelle einen Primärschlüssel einer Mitarbeiter-Id-Spalte, während eine Arbeitszeittabelle-Tabelle auch eine Mitarbeiter-Id-Spalte hat, die einen Fremdschlüssel für die Employee-Tabelle ist. Der SQL-Join kann als geschrieben werden "WHERE employee.empid = timesheet.empid" oder "von Employee JOIN Arbeitszeittabelle ON (employee.empid = timesheet.empid)."

Vor- und Nachteile von Joins

Der Hauptvorteil einer Verknüpfung ist, dass es schneller ausgeführt wird. Die Leistungssteigerung kann nicht vom Endbenutzer bemerkbar. Jedoch, da die Spalten sind speziell benannt und indiziert und von der Datenbank-Engine optimiert, Abruf fast immer schneller als die einer Unterabfrage wird. Es gibt auch inner und outer-Joins, Links und rechts Joins, vollständige Verknüpfungen und Kreuzverknüpfungen. Ein Nachteil der Verwendung von Verknüpfungen ist, dass sie nicht leicht als Unterabfragen zu lesen sind. Ein weiterer Nachteil ist, dass es sein kann, welche Join die geeignete Art der Verknüpfung verwenden, um das korrekte gewünschte Resultset Ausbeute ist verwirrend.