Thema: Delphi delete mit join

Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: delete mit join

  Alt 10. Mai 2007, 15:19
Hallo,

etwa so ?
ist die 2. Detail-Tabelle, aber ähnlich aufgebaut.


Delphi-Quellcode:
SQL.Add('Delete From DataFoxInput_Details2');
SQL.Add('Where');
SQL.Add(' (DataFoxInput_Details2.DataFoxInputId');
SQL.Add(' In (Select DataFoxInput.Id From DataFoxInput');
SQL.Add(' Where DataFoxInput.TheDate=:CheckDate)');
SQL.Add(' )');
Das geht FB sowas von in die Knie.

Ein
select * from DataFoxInput_Details2
Where
(DataFoxInput_Details2.DataFoxInputId
In (Select DataFoxInput.Id From DataFoxInput
Where DataFoxInput.TheDate='8.12.2007'))

braucht 50 Sekunden (lokaler SQL-Server)

Plan:
PLAN (DATAFOXINPUT INDEX (RDB$PRIMARY153))
PLAN (DATAFOXINPUT_DETAILS2 NATURAL)


Das hier im Select natürlich ein Join besser wäre,
ist klar, es geht aber ja am das delete.

Was is nu kaputt ?
Indizes sind natürlich deauf.
die Details2 Tabelle hat etwa 2.7 Mio Einträge,
davon ~ 30000 vom 8.12.


Heiko
Heiko
  Mit Zitat antworten Zitat