Recordset, findfirst langsam bei 2 Parametern mit AND oder OR
- From: "Herbert Gottlieb" <herbert.gottlieb_whitout_t_h_a_t.@xxxxxx>
- Date: Tue, 2 Dec 2008 18:43:56 +0100
Hallo,
ich habe die Tabellen einer Access.mdb auf SQL2000 kopiert und nun Problem
mit RecordsetAbfragen (Access 2003)
Tabelle mit 30000 Datensätzen und unter anderem zwei Felder, ID1 und ID2
Suche ich nach den ersten Datensatz egal ob ID1 oder ID2 bekomme ich das
Ergebnis innerhalb einer Sekunde, Suche iuch nach beide Werte dauert das
rund 85 Sekunden. Irgendwelche Ideen woran das liegt und was kann man da
machen?
set r=currentdb.Openrecordset("Tabelle1", dbopenRecortset,dbseechanges)
r.findfirst "ID1=23456" 'gibt es nur einmal in der Tabelle
'Ergebnis in 1 Sek
r.findfirst "ID1=23456 AND ID2=1234" 'gibt es natürlich auch nur einmal in
der Tabelle
'Ergebnis in 85 Sekunden
r.findfirst "ID1=23456 OR ID2=1234" 'gibt es öfters
'Ergebnis in 44 Sekunden
Diese Ergebnisse sind bereits mit einen Index auf ID1, auf ID2 und einen
auf ID1 +ID2
Ebenso habe ich das mit anderen Tabellen und Feldern probiert, solbald 2
Werte AND oder OR Verknüpft dauert die Abfrage lange
Jedoch bei
set r=currentdb.Openrecordset("Select * FROM Tabelle1 WHERE ID1=23456 AND
ID2=1234,", dbopenRecortset,dbseechanges)
r.findfirst "ID1=23456 AND ID2=1234" 'gibt es natürlich auch nur einmal in
der Tabelle
ist das Öffnen und das Ergebnis sofort innerhalb 1 Sekunde da
Wer hat hier einen Tipp (ich will nicht überall die Struktur umstellen)?
Danke,
Herbert
.
- Follow-Ups:
- Re: Recordset, findfirst langsam bei 2 Parametern mit AND oder OR
- From: Stefan Dase
- Re: Recordset, findfirst langsam bei 2 Parametern mit AND oder OR
- Next by Date: Re: Recordset, findfirst langsam bei 2 Parametern mit AND oder OR
- Next by thread: Re: Recordset, findfirst langsam bei 2 Parametern mit AND oder OR
- Index(es):
Relevant Pages
|