AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken C# SELECT JOIN MIN richtig kombinieren?
Thema durchsuchen
Ansicht
Themen-Optionen

SELECT JOIN MIN richtig kombinieren?

Ein Thema von Jürgen Thomas · begonnen am 16. Nov 2007 · letzter Beitrag vom 17. Nov 2007
Antwort Antwort
Seite 2 von 2     12   
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#11

Re: SELECT JOIN MIN richtig kombinieren?

  Alt 17. Nov 2007, 17:18
Danke auch an Thorsten: das ist der vernünftige Weg für die Verknüpfung über JOIN.

Ergänzende Hinweise: StrVerz und PF-Verz sind smallint-Werte mit Inhalt 0/1/2, PLZ-Art sind int-Werte mit Inhalt 1...7. Damit alle Daten ausgelesen werden (siehe die Größenordnungen in meinem Beitrag #9), musste ich die Prüfung auf PLZ-Art in das SubSelect einfügen.

Der folgende Befehl ist jetzt meine endgültige Version (ergänzt um den zweiten JOIN und alle verwendeten Felder):
SQL-Code:
SELECT oa.Alort,
       Ort.Name_lang,
       Ort.Name_kurz,
       Ort.Zusatz,
       Ort.Zusatz_art,
       oa.Name_kurz as NAME,
       oa.Status,
       p1.PLZ,
       p1.Plz_art,
       p1.Strverz,
       p1.Pf_verz,
       Ort.Kgs
  FROM Orte2 oa
  INNER JOIN (SELECT PLZ, Alort, PLZ_Art, StrVerz, PF_Verz
                FROM PLZ p2
               WHERE PLZ = (SELECT MIN(PLZ)
                              FROM PLZ
                             WHERE Alort = p2.Alort AND PLZ_Art >= 6)
             ) p1
           ON p1.Alort = oa.Alort
  JOIN Ort ON Ort.Id = oa.Alort
Da dieser View immer wieder einmal ausgeführt werden soll, möchte ich es - soweit nötig - noch optimieren. Da ich auch mit Ausführungsplänen noch keine Erfahrung habe, bitte ich hier um Hilfe. IBExpert (danke auch an HK) liefert folgende Hinweise:
Zitat:
Plan:
PLAN (P1 PLZ ORDER PLZ_ALORT INDEX (PLZ_FK_ORT))
PLAN JOIN (OA INDEX (ORT_ALT_PK), ORT INDEX (ORT_PK), P1 P2 INDEX (PLZ_FK_ORT))

Adapted plan:
PLAN (P1 PLZ ORDER PLZ_ALORT INDEX (PLZ_FK_ORT)) PLAN JOIN (OA INDEX (ORT_ALT_PK), ORT INDEX (ORT_PK), P1 P2 INDEX (PLZ_FK_ORT))
Die genannten Indizes existieren alle bereits: PK sind PrimaryKey mit int-ID, FK sind ForeignKey auf entsprechende PKs. Mein Verständnis sagt, dass der Ausführungsplan optimiert ist. Stimmt das?

Wenn ich das SELECT als VIEW registriere: ist es sinnvoll/möglich/nötig, den "Adapted plan" per PLAN-Klausel hinzuzufügen?

Danke für diese weiteren Hinweise! Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz