AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Next; benötigt bei Zeos viel zu lange...
Thema durchsuchen
Ansicht
Themen-Optionen

Next; benötigt bei Zeos viel zu lange...

Ein Thema von Teekeks · begonnen am 29. Mär 2011 · letzter Beitrag vom 3. Apr 2011
Antwort Antwort
Seite 1 von 2  1 2      
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#1

Next; benötigt bei Zeos viel zu lange...

  Alt 29. Mär 2011, 16:51
Datenbank: Firebird • Version: 7 • Zugriff über: Zeos
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
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 29. Mär 2011, 16:58
Wird es schneller, wenn Du das BLOB-Feld einmal in der Abfrage weglässt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 29. Mär 2011, 16:59
Werden insgesamt oder in jeden Blob 40GB geschrieben? Auf jeden Fall wäre bei dieser Datenmenge ein Index für die Tabelle keine schlechte Idee
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#4

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

  Alt 29. Mär 2011, 17:15
@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...
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 29. Mär 2011, 17:24
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#6

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

  Alt 29. Mär 2011, 17:38
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...).
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

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

  Alt 29. Mär 2011, 17:59
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#8

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

  Alt 29. Mär 2011, 19:06
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#9

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

  Alt 29. Mär 2011, 21:39
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
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

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

  Alt 29. Mär 2011, 21:46
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.)
Versuch das ganze mal mit nem blob und sub_type = 1 (=> Textblob)

Eventuell geht das schneller.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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