Recordset, findfirst langsam bei 2 Parametern mit AND oder OR



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


.



Relevant Pages

  • Re: Timeout nach =?UTF-8?B?U2NobMO8c3NlbG1pZ3JhdGlvbg==?=
    ... > Nach dem ich die ID1 und ID2 wieder in der alten Reihenfolge ... Tabelle gekommen sein. ... Denn die Sortierung der Spalten hat keinen Einfluß ...
    (microsoft.public.de.sqlserver)
  • Re: Merging/Eliminating Redundant Columns
    ... WHERE ID1 is Null and ID2 is Null and ID3 Is Null ... I am creating a query from several different tables containing housing ...
    (microsoft.public.access.queries)
  • Re: Table Lookup MYSQL
    ... Eine Möglichkeit obige Abfrage zu beschleunigen ist wohl ein Index in ... Naja, daher schrieb ich auch, dass ich ID1 und ID2 als Index definiert ...
    (de.comp.datenbanken.mysql)
  • Re: Can this be done in SQL? Find the transitive relation
    ... if any of the value from id1 or id2 can be linked to any other ... select rowid, id1, id2 ...
    (comp.databases.oracle.server)
  • Re: can this be done with many to many relationship
    ... relations in real-world terms rather than trying to be too abstract. ... We have customers, and each customer can have zero to ... autoid ID1 in the main table and number ID1 in the first multi record ... I have ID2 to ID2. ...
    (comp.databases.ms-access)