Performance verbessern

19/12/2008 - 13:13 von Andreas Vogt | Report spam
Hallo NG
habe eine Tabelle in der ich Doubletten löschen möchte. Doubletten
werden über das Feld Erfassungsdatum (date) definiert. Hier meine
Abfrage mit Not In Statement:

DBtemp.Execute "Delete FROM tblDuesen as A " & _
"Where A.Erfassungsdatum NOT IN (" & _
"SELECT Max(B.Erfassungsdatum) " & _
"FROM tblDuesen AS B " & _
"WHERE B.ID_Due = A.ID_Due)"

Jemand eine Idee wie ich das NOT IN durch NOT EXISTS ersetzen kann?

Gruß Andreas
 

Lesen sie die antworten

#1 Peter Doering
19/12/2008 - 13:31 | Warnen spam
Hallo,

Andreas Vogt wrote:

habe eine Tabelle in der ich Doubletten löschen möchte. Doubletten
werden über das Feld Erfassungsdatum (date) definiert. Hier meine
Abfrage mit Not In Statement:

DBtemp.Execute "Delete FROM tblDuesen as A " & _
"Where A.Erfassungsdatum NOT IN (" & _
"SELECT Max(B.Erfassungsdatum) " & _
"FROM tblDuesen AS B " & _
"WHERE B.ID_Due = A.ID_Due)"

Jemand eine Idee wie ich das NOT IN durch NOT EXISTS ersetzen kann?



In diesem Fall garnicht, zumindest nicht, wenn der im Betreff erwaehnte
Performancegewinn herausschauen soll.

Die Syntax waere WHERE NOT EXISTS (SELECT ... ) wobei die Bedingung auf
Max(Erfassungsdatum) nicht mehr geprueft werden koennte.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
NEK 14.-15.02.2009: http://www.donkarl.com/?nek

Ähnliche fragen