Entwickler-Ecke
Datenbanken - Lange Dauer der Filterung bei TQuery
Tranx - Sa 05.03.11 08:30
Titel: Lange Dauer der Filterung bei TQuery
Hallo Leute,
habe einen sehr merkwürdigen Effekt gefunden. Ich habe eine Datenbank (ACCESS) mit mehreren Tabellen und auf eine davon greife ich per TQuery zu. Dabei filtere ich die Daten in verschiedenster Form. Eine Filterung ist dabeio über ein boolsches Feld.
Wenn ich in dem SQL-Text stehen habe:
Delphi-Quelltext
1:
| SQL[2] := 'WHERE Feld = -1'; |
dann filtert er immer schnell.
Habe ich allerdings stehen:
Delphi-Quelltext
1:
| SQL[2] := 'WHERE not(Feld = 0)'; |
dann filtert er manchmal schnell und manchmal extrem langsam. Habt Ihr dafür eine Erklärung? Ich vermute, dass ja beim ersten Beispiel der konkrete Inhalt abgefragt wird, während beim zweiten alle möglichen Inhalte herausgesucht werden, außer 0. Da jedoch das Feld - wie gesagt - ein boolsches Feld ist (in der Datenbank als logisch definiert), gibt es m.E. ja nur zwei mögliche Feldinhalte.
Das Problem habe ich nun gelöst, indem ich immer den Text "WHERE Feld = -1" einsetze
haentschman - Sa 05.03.11 09:42
Hallöchen...
Zitat: |
Das Problem habe ich nun gelöst |
...sorry, aber in keinster Weise. Die BDE werkelt immer noch :shock:
Ich hatte letztlich auch das Vergnügen Daten aus Paradox importieren zu müssen. Ein einfaches select dauerte bis zu 3 Minuten. :shock: Ich bin fast wahnsinnig geworden. Danach hab ich auf Tables umgestellt und clientseitig gefiltert. Da war die Zeit akzeptabel.
Also: so schnell es geht weg von der BDE !
:wave:
jaenicke - Sa 05.03.11 10:20
Tranx hat folgendes geschrieben : |
Da jedoch das Feld - wie gesagt - ein boolsches Feld ist (in der Datenbank als logisch definiert), gibt es m.E. ja nur zwei mögliche Feldinhalte. |
Nein, drei. Wahr, Falsch und leer.
Wenn du auf einen konkreten Wert prüfst, werden alle Null-Werte übersprungen. Wenn du mit not arbeitest, bin ich mir nicht sicher wie die BDE das abarbeitet. Null-Werte fallen eigentlich trotzdem heraus, aber ich weiß nicht, ob die dennoch geprüft werden.
Tranx - Sa 05.03.11 10:44
Danke für die Info. Gut zu wissen. Mit der Abhilfe scheint es ja dann auch gut zu funktionieren. Allerdings ist es so, dass dieses Feld überhaupt keine leeren Inhalte hat, bei keinem Datensatz. Habe ich getestet. Es steht dort entweder 0 oder -1. Möglicherweise wird die Abfrage mit "not" wirklich anders umgesetzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!