Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Next; benötigt bei Zeos viel zu lange... (https://www.delphipraxis.net/159467-next%3B-benoetigt-bei-zeos-viel-zu-lange.html)

Teekeks 29. Mär 2011 15:51

Datenbank: Firebird • Version: 7 • Zugriff über: Zeos

Next; benötigt bei Zeos viel zu lange...
 
Hallo!
Ich habe ein großes Problem (welch Wunder :) )
Und Zwar habe ich eine Firebird-Datenbank auf die ich mittels Zeos zugreife.
Jetzt habe ich das Problem dass wenn ich das Ergebniss einer Abfrage wie gewohnt mit
Delphi-Quellcode:
Query.First;
while not EOF do
begin
  //mach was
  Query.Next;
end;
das Next bei etwa 180 Datensätzen entsetzliche 11 Sekunden Insgesamt benötigt.
Dass ist mir viel zu viel.

Die Tabelle auf die er Zugreift hat folgende Felder:
7x Smalint
1x Bigint
1x Varchar(255)
1x blob sub_type 0

In den Blob werden auch nur momentan ca 40Byte rein gespeichert.

Noch als Info: Ich nutze Lazarus.

Jetzt ist meine frage: was kann ich verbessern? Warum braucht das next so lange? (alles andere benötigt nur wenige ms)
Liegt das an dem Blob? (ist mein erstes ^^)

Gruß Teekeks

DeddyH 29. Mär 2011 15:58

AW: Next; benötigt bei Zeos viel zu lange...
 
Wird es schneller, wenn Du das BLOB-Feld einmal in der Abfrage weglässt?

HeikoAdams 29. Mär 2011 15:59

AW: Next; benötigt bei Zeos viel zu lange...
 
Werden insgesamt oder in jeden Blob 40GB geschrieben?:shock: Auf jeden Fall wäre bei dieser Datenmenge ein Index für die Tabelle keine schlechte Idee ;-)

Teekeks 29. Mär 2011 16:15

AW: Next; benötigt bei Zeos viel zu lange...
 
@Heiko: nur 40 Byte nicht GigaByte ^^
@DeddyH: Ja, Tatsächlich...
Aber: ich benötige dieses Blob.
Was läuft da falsch?
Ich habe das Gefühl das wir der Sache näher kommen... :)

DeddyH 29. Mär 2011 16:24

AW: Next; benötigt bei Zeos viel zu lange...
 
Die Frage ist: brauchst Du zur Abfragezeit wirklich alle BLOBS? Falls Du diese in einem DBGrid anzeigst, dann doch sicher nicht. In dem Falle würde ich das BLOB-Feld von der Abfrage ausschließen und erst bei Bedarf (Anzeige der Detaildaten) abfragen.

Teekeks 29. Mär 2011 16:38

AW: Next; benötigt bei Zeos viel zu lange...
 
Ich zeige das ganze nicht in einem DB-Grid dar, sondern verarbeite dabei diese selber von Hand.
Und ich benötige dabei wirklich alle Blobs (ist ja auch nur eines pro Datensatz, dass sollte nun wirklich mal möglich sein bei einem so mächtigen System mal eben 40 Byte je Datensatz zu lesen, selbst mein VarChar ist da größer...).

p80286 29. Mär 2011 16:59

AW: Next; benötigt bei Zeos viel zu lange...
 
Ich hab mir mal sagen lassen, daß für BLOBs ziemlich viel Treibergymnastik notwendig ist.
(Langsam aber geht)
Muß es denn ein BLOB sein?

Gruß
K-H

rollstuhlfahrer 29. Mär 2011 18:06

AW: Next; benötigt bei Zeos viel zu lange...
 
Also wenn es nur (fest) 40 Bytes sind, dann würde ich ein VARCHAR(40) nehmen, welches Case-Sensitive ist. Dann hast du deine 40 Zeichen und die Abfrage sollte sich wesentlich beschleunigen.

Bernhard

Teekeks 29. Mär 2011 20:39

AW: Next; benötigt bei Zeos viel zu lange...
 
Hallo, schon einmal danke für eure Hilfe.
Nein, es ist halt leider nicht Konstant 40 Byte.
Konkret ist es ein Variabler Text mit eigenen Formations-Einheiten.

Bei MySQL gibt es ja den Feldtyp Text, der würde gehen.
Das Problem ist das ein beliebig langer "Text" gespeichert werden soll.

Gibt es denn da einen entsprechenden Typen in Firebird?

Gruß Teekeks

Neutral General 29. Mär 2011 20:46

AW: Next; benötigt bei Zeos viel zu lange...
 
Hallo,

Schau mal hier: http://www.firebirdfaq.org/faq165/

Zitat:

0 - binary data (image, video, audio, whatever)
1 - text (basic character functions work)
2 - BLR (used for definitions of Firebird procedures, triggers, etc.)
:arrow: Versuch das ganze mal mit nem blob und sub_type = 1 (=> Textblob)

Eventuell geht das schneller.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
Seite 1 von 2  1 2      

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