Thema: Delphi SQL Optimieren

Einzelnen Beitrag anzeigen

Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

SQL Optimieren

  Alt 30. Apr 2008, 10:59
Datenbank: Interbase • Version: 6 • Zugriff über: IBX
Hallo Liebe Leute,
ich habe hier ein Problem bei dem ich nicht weiter komme. Ich habe ein Abfrage welche auch funktioniert, jedoch zu lange dauert. Es dauert einige Minuten bis das Ergebnis kommt. Da ist nicht ein so großes Problem, jedoch würde ich es gerne schneller hinbekommen. Ich weiß einfach nicht wie ich die Abfrage optimieren kann.

Der Server ist ein Interbase. Ich vereinfache mal die Tabellen auf das nötigste. Die Daten müssen auch so in die Tabellen geschrieben werden. Die richtigen Indexe sind auch gesetzt.

Delphi-Quellcode:

Tabelle Wagen

Felder:
WagenZaehler Integer (mit Index)
Wagen VarChar(20)

Tabelle Strecken

Felder:
StreckenZaehler Integer (mit Index)
Strecke VarChar(20)

Tabelle Verlauf

Felder:
VerlaufZaehler Integer (mit index)
IDWagen Integer (mit Index)
IDStrecke Integer (mit Index)
So das sind die Tabelle in vereinfachter Form. Das ganze besteht aus noch etlich Feldern und etlichen Tabellen

Hier mal einige Werte in den Tabellen

Delphi-Quellcode:
Tabelle Wagen:

WagenZaehler Wagen
1 Wagen grün
2 Wagen gelb
3 Wagen rot
4 Wagen blau

Tabelle Strecken

StreckZaehler Strecke
1 Strecke 1
2 Strecke 2
3 Strecke 3
4 Strecke 4

Tabelle Verlauf

VerlaufZaehler IDWagen IDStrecke
1 1 1
2 2 1
3 3 4
4 1 2
5 4 2
6 1 3
7 1 4
8 4 1
9 4 3
Nun endlich zu meinem Problem. Ich möchte z.b. alle Wagen, die die (Strecke 1 oder 2) und (Strecke 3 oder 4) benutzen. Dazu habe ich mir diesen SQL Code überlegt.

SQL-Code:
  
Select Wagen
From Wagen
Where Wagenzaehler in
(Select IDWagen From Verlauf where IDStrecke in ('1','2'))
and WagenZaehler in
(Select IDWagen From Verlauf where IDStrecke in ('2','4'))
Als Ergebnis sollte hier Wagen 1 erscheinen
Wie gesagt es dauert einige Minuten. Kann man es optimieren ??

Danke Tanja
Tanja
  Mit Zitat antworten Zitat