Autor Beitrag
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Di 11.03.03 10:29 
Hallöle...

eigentlich gehören Indizes ja zur "Grundausstattung" jeder Datenbanken, aber bezüglich SQL komm ich immer noch nich mit klar:

Ich hab jetzt zwar in einer etwas größeren Datenbank einen Index auf ein Feld erstellt, aber konnte bei der Suche per SELECT keine großen Suchbeschleunigungen feststellen.
Muss ich noch irgendwas beachten?

vielen Dank
mfg
kiwicht
Luncustaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Di 11.03.03 10:34 
sers,

naja bisserl code sollte vllt sein :)

eigentlich musste ja nur machen


ausblenden Quelltext
1:
SELECT * FROM tabelle WHERE Id = wert					



das sollte reichen

gr€€tz
kiwicht Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Di 11.03.03 10:54 
danke... aber soviel war ja schon klar... ;)

hab jetzt also auf Button1.Click:

Zitat:
QueryFirmendt.SQL.Clear;
QueryFirmendt.SQL.Add('CREATE UNIQUE INDEX firmen ON firmendt (firmencode)');
QueryFirmendt.ExecSQL;


und auf Button 2 die SQL-Anweisung schön verpackt:
Zitat:

SELECT * FROM firmendt WHERE firmencode LIKE 'bla test'


Und eine Steigerung der Geschwindigkeit ist wie gesagt nicht festzustellen....
Die Datenbank umfasst jetzt knapp 5000 Einträge, das reicht doch erstmal um einen Index zu rechtfertigen, oder?


//EDIT:
Ach ja, und wo wir grad beim Thema sind: Wie lösch ich mit der BDE die Indizes wieder? :oops:
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 11.03.03 11:19 
Hallo!

Mit like ist es so eine Sache: "where (NAME) like 'Getr%' " (Suche nach Einträgen mit dem Text "Getr" am Anfang) ist indiziert,
" where (NAME1) like '%Getr%' " (Suche nach Einträgen mit dem Text "Getr" irgendwo") dagegen nicht.

Cu,
Udontknow
kiwicht Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Di 11.03.03 11:29 
Hm, klingt aber einleuchtend... weil ich bei der Indizierung ja (rein technisch gesehen) nach "Anfangsbuchstaben sortiere... gut.

Und wie lösche, oder aktualisiere, ich die Indizes?

mfg und danke

kiwicht
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 11.03.03 11:38 
Ändern geht meines Wissens nicht, du musst löschen und neu erstellen.

"Drop index indexname" lautet das Statement zum Löschen.

BTW: Für Interbase-DB-Pflege eignet sich der IBExpert vorzüglich!

Cu,
Udontknow
kiwicht Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Di 11.03.03 12:21 
Zitat:
"Drop index indexname" lautet das Statement zum Löschen.


klappt leider nicht. Dazu muss ich auch sagen das ich nicht IB sondern die BDE nutzte... (jaja, ich weiß, die ist doof..... :lol: )
Er sagt mir dann immer "Unexpected End of Command..."