AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Einfache Abfrage dauert 2 Sekunden
Thema durchsuchen
Ansicht
Themen-Optionen

Einfache Abfrage dauert 2 Sekunden

Ein Thema von erich.wanker · begonnen am 6. Mai 2014 · letzter Beitrag vom 6. Mai 2014
Antwort Antwort
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#1

Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 09:36
Datenbank: firebird • Version: 2.5 • Zugriff über: ZeosLib
Hallo Leute,
mal eine kurze Frage ..
Meine Abfrage dauert 2 Sekunden

Anzahl Datensätze: 100.000
Maschine: Win8.1 32 bit
HDD: SSD 200GB
RAM: 3,00 GB
CPU: Intel e8400 @ 3.00 GHz
Abfrage: Lokal
Delphi XE4



Die Tabelle:
Code:
/* Table: VERTRAGS_MENUPUNKT, Owner: SYSDBA */

CREATE TABLE "VERTRAGS_MENUPUNKT"
(
  "STRUCTURE_NR"   INTEGER NOT NULL,
  "STRUCTURE_PR"   INTEGER,
  "OBJECT_ART"   INTEGER,
  "OBJECT_NAME"   CHAR(200) CHARACTER SET ISO8859_1 COLLATE DE_DE,
  "OBJECT_TYPE"   INTEGER,
  "AUTHOR_NAME"   CHAR(200) CHARACTER SET ISO8859_1 COLLATE DE_DE,
  "AUTHOR_NR"   INTEGER,
  "PERMISSION"   CHAR(200) CHARACTER SET ISO8859_1 COLLATE DE_DE,
  "BARCODE_NR"   INTEGER,
  "SUBDATA_NR"   INTEGER,
  "ORDER_SEQUENCE_NR_A"   INTEGER,
  "ORDER_SEQUENCE_NR_B"   INTEGER,
  "ORDER_SEQUENCE_NR_C"   INTEGER,
  "DONT_MOVE_AND_DELETE"   INTEGER,
CONSTRAINT "PK_VERTRAGS_MENUPUNKT" PRIMARY KEY ("STRUCTURE_NR")
);

/*  Index definitions for VERTRAGS_MENUPUNKT */

CREATE INDEX "IDX_VERTRAGS_MENUPUNKT_1" ON "VERTRAGS_MENUPUNKT"("OBJECT_TYPE", "OBJECT_NAME");

SQL Abfrage
Code:
SELECT * FROM VERTRAGS_MENUPUNKT WHERE STRUCTURE_PR = 1 ORDER BY OBJECT_TYPE, OBJECT_NAME
Select * ... ist zwar nicht ideal - aber an dem kanns doch nicht liegen.

Eine typische Anfrage liefert maximal 25 Records als Ergebnis ..
Die Variationen der Abfrage betreffen immer nur: WHERE STRUCTURE_PR = X

Wo kann ich da noch nachbessern ?

Vielen Dank für Infos
Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \

Geändert von erich.wanker ( 6. Mai 2014 um 09:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 09:42
Du könntest nen Index auf STRUCTURE_PR legen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#3

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 09:52
Hallo Baumina

Danke für den Hinweis .. grad durchgeführt ...

Zitat:
/* Index definitions for VERTRAGS_MENUPUNKT */

CREATE INDEX "IDX_VERTRAGS_MENUPUNKT_1" ON "VERTRAGS_MENUPUNKT"("OBJECT_TYPE", "OBJECT_NAME");
CREATE INDEX "IDX_VERTRAGS_MENUPUNKT_2" ON "VERTRAGS_MENUPUNKT"("STRUCTURE_PR");

..aber die Geschwindigkeit ist nicht viel besser geworden ...

Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 10:01
Funktioniert die Namensauflösung für localhost (wenn du lokal abfragst)? 2 Sekunden könnte gut ein Timeout bei den Named Pipes sein.

Gruß
GRL
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 10:02
Ist das wirklich die Laufzeit der Abfrage die Du dort mißt? Führe die Abfrage mal z.b. mit IBExpert aus oder mit ISQL.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#6

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 10:29
Hab jetzt ausprobiert:

Code:
ZConnection1.HostName:='192.168.0.110';
. ändert nichts

Wenn ich aber via IBOConsole eine Anfrage erzeuge - gehts superschnell ????

Steh vor einem Rätsel...
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 10:44
Nochmal die Frage: Misst Du wirklich ausschließlich die Dauer der Abfrage oder wird da noch ein Grid oder weitere Kontrollelemente gefüllt?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#8

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 10:49
Sorry .. hab vergessen diese Angabe zu machen:

In einem DBGrid - onDoppelklick wird das SQL Statement erstellt - und im gleichen Grid werden dann die neu gefilterten Datensätze angezeigt .. der Zeitraum ist von Klick bis neue Darstellung
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 10:55
Evtl. bringt ein DisableControls / EnableControls vorher / nachher etwas.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#10

AW: Einfache Abfrage dauert 2 Sekunden

  Alt 6. Mai 2014, 12:04


OK ... die Geschwindigkeit hat nix mit meiner DB oder mit der SQL-Abfrage zu tun ... Ich hab jetzt mal mit ein paar TButtons die Abfrage in Gang gesetzt und hab das DBGrid deaktiviert ... geht so schnell wie es sein sollte ..

Irgendwo hab ich noch ein Problem .. aber nicht in der Kette [DB - ZConnection - ZQuery - SQL ]

Vielen Dank für eure Hilfe
und liebe Grüße aus dem Salzburgerland
Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:55 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