Ich stütze mich dabei hauptsächlich auf den Versuch, die "richtige" Antwort zu erhalten, sodass Sie möglicherweise feststellen, dass es einige Leistungsprobleme gibt. Es macht keinen Sinn, eine falsche Abfrage zu beschleunigen.
Verstehen Sie die Tabellenbeziehungen - Die meisten werden eins zu viele sein. Kennen Sie die "viele" Tabelle. Identifizieren Sie die für Ihre Joins erforderlichen Felder.
Denken Sie an LINKS-Beitrittsszenarien - Wählen Sie alle Mitarbeiter und deren Gehaltsscheck aus dem letzten Monat aus. Was wäre, wenn sie letzten Monat keinen Gehaltsscheck bekämen?
Kennen Sie die Ergebnismenge: 1) Geben Sie in einer Tabelle manuell mindestens einen korrekten Datensatz für Ihre Abfrage ein. 2) Schreiben Sie die Abfrage in einer ausreichend einfachen Form, um zu bestimmen, wie viele Datensätze zurückgegeben werden sollen. Verwenden Sie diese beiden Methoden, um Ihre Abfrage zu testen und sicherzustellen, dass das Ergebnis durch das Verknüpfen einer neuen Tabelle nicht geändert wird.
Teilen Sie Ihre Anfrage in überschaubare Teile auf - Sie müssen nicht alles auf einmal schreiben. Komplexe Abfragen können manchmal nur eine Sammlung einfacher Abfragen sein.
Beachten Sie gemischte Aggregationsebenen : Wenn Sie monatliche, vierteljährliche und jährliche Werte in dieselbe Ergebnismenge aufnehmen müssen, müssen Sie diese in Abfragen, die auf verschiedenen Werten gruppiert sind, separat berechnen.
Wissen, wann UNION erforderlich ist Manchmal ist es einfacher, Untergruppen in ihre eigenen select-Anweisungen aufzuteilen. Wenn Sie eine Tabelle mit Managern und anderen Mitarbeitern gemischt haben und in jeder Spalte Case-Anweisungen ausführen müssen, die auf der Zugehörigkeit zu einer dieser Gruppen basieren, ist es möglicherweise einfacher, eine Manager-Abfrage und eine Union zu einer Mitarbeiter-Abfrage zu schreiben. Jeder würde seine eigene Logik enthalten. Es liegt auf der Hand, Elemente aus verschiedenen Tabellen in verschiedene Zeilen aufnehmen zu müssen.
Komplexe / verschachtelte Formeln - Versuchen Sie, konsistent einzurücken, und haben Sie keine Angst davor, mehrere Zeilen zu verwenden. "CASE WHEN CASE WHEN CASE WHEN" wird Sie verrückt machen. Nehmen Sie sich Zeit, um diese zu durchdenken. Speichern Sie die komplexen Berechnungen zum Schluss. Wählen Sie zuerst die richtigen Datensätze aus. Dann greifen Sie komplexe Formeln an und wissen, dass Sie mit den richtigen Werten arbeiten. Wenn Sie die in den Formeln verwendeten Werte sehen, können Sie Bereiche erkennen, in denen Sie NULL-Werte berücksichtigen müssen und in denen Sie mit dem Fehler der Division durch Null umgehen müssen.
Testen Sie regelmäßig, während Sie neue Tabellen hinzufügen, um sicherzustellen, dass Sie immer noch die gewünschte Ergebnismenge erhalten und wissen, welcher Join oder welche Klausel der Schuldige ist.