Autor Beitrag
hermannhass
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

win2000

BeitragVerfasst: Mo 02.02.04 12:41 
Hallo
Ich habe eine große Tabelle, benutze ADO und MS-sqlserver.
In meinem Formular benutze ich einen Ado-Dataset.
Ich habe auf dem Feld "ArtNR" einen primaren eindeutigen Index.
Curserlocation ist(muss) server und typ keyset.
Mein Locate('ARTNR',4711) dauert trotz index lange !
Wenn ich "per hand" mit sql suche ("select ... where artnr="4711") ist der Datensatz schnell da.
Eine Idee?
Danke
Hermann
DannyVapid
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


Delphi 5 Enterprise
BeitragVerfasst: Mi 04.02.04 20:24 
Hi Hermann,

Locate benutzt grundsätzlich eine sequentielle Suche, der Index bleibt unbenutzt. Versuchs doch mal mit FindKey
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Do 05.02.04 12:33 
Hallo!

Wie sieht dein Select-Statement aus? Holst du immer alle Datensätze? Es ist grundsätzlich besser, das SQL-Statement zu ändern, um so die Datenmenge, die zum Dataset wandert, einzuschränken.

Cu,
Udontknow