Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Anweisung verwendet Index von Table? (https://www.delphipraxis.net/13066-sql-anweisung-verwendet-index-von-table.html)

mandumoal 10. Dez 2003 13:21


SQL-Anweisung verwendet Index von Table?
 
Hallo!

Verwendet eine SQL-Anweisung immer automatisch den Index von der Table-Komponente der in Indexname definiert wurde?
Ich habe eine Datenbank mit ein paar Feldern und alle haben einen eigenen Index.
Mittels SQL suche ich die Datensätze wobei immer nur in einem Feld gesucht wird und der Table.Indexname immer den Index hat der sich auf das Feld bezieht in dem gesucht werden soll.
Jetzt frage ich mich ob SQL beim Suchen den Index überhaupt verwendet denn es geht genau gleich lang wenn ich den Index habe oder nicht.
kann es sein das SQL den Index nicht verwenden kann wenn in der SQL-Anweisung mit Funktionen gearbeitet wird?
In meinem Fall mache ich eine Abfrage so :
Delphi-Quellcode:
...Upper(Feld1) like Upper(Suchwort)...
falls das der Fall sein sollte wie kann ich dann einen Index machen der alle Datensätze schon "uppt"
damit ich mir das Upper(Feld1) sparen kann?


[Falsch]Ich habe gerade bemerkt, dass das Upper() gar nichts bewirkt was ja ganz gut ist denn dann kann ich es weglassen aber schneller geht es jetzt trotzdem nicht obwohl der Index aktiv ist...[Falsch]

also meine Frage jetzt:
was muss ich machen damit die SQL-Anweisung den Index benutzt?


mfg mandumoal

EDIT: oops; :oops: das Upper hat sehr wohl eine Wirkung ich hab da nur die hälfte umgeschriebn gehabt was ich dann gar nicht ausprobiert habe

Garby 10. Dez 2003 15:02

Re: SQL-Anweisung verwendet Index von Table?
 
Hallo,

welche DB verwendest du?
Und: wenn du TTable verwendest, wo gibst du die SQL-Anweisung ein?

mandumoal 10. Dez 2003 18:25

Re: SQL-Anweisung verwendet Index von Table?
 
Ich verwende eine Paradox 7 Datenbank und ein TQuery Objekt dem ich mit TQuery.Sql.Add() die Abweisung übergebe.

mfg mandumoal

mandumoal 10. Dez 2003 20:49

Re: SQL-Anweisung verwendet Index von Table?
 
Hallo!

Ich bin inzwischen ein bisschen weiter und versuche gerade mittels CREATE INDEX einen Index zu erzeugen.

Den Anweisungstext frisst er brav aber wenn ich das dann mittels
Delphi-Quellcode:
Query1.ExecSQL;
ausführen will dann sagt er mir : EBDEngine Error : Die Tabelle ist in Gebrauch.

Was muss ich vorher machen damit diese Meldung nicht kommt?

mfg mandumoal


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz