Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Einfache Abfrage dauert 2 Sekunden (https://www.delphipraxis.net/180267-einfache-abfrage-dauert-2-sekunden.html)

erich.wanker 6. Mai 2014 09:36

Datenbank: firebird • Version: 2.5 • Zugriff über: ZeosLib

Einfache Abfrage dauert 2 Sekunden
 
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

baumina 6. Mai 2014 09:42

AW: Einfache Abfrage dauert 2 Sekunden
 
Du könntest nen Index auf STRUCTURE_PR legen.

erich.wanker 6. Mai 2014 09:52

AW: Einfache Abfrage dauert 2 Sekunden
 
Hallo Baumina

Danke für den Hinweis :thumb: .. 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

grl 6. Mai 2014 10:01

AW: Einfache Abfrage dauert 2 Sekunden
 
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

Union 6. Mai 2014 10:02

AW: Einfache Abfrage dauert 2 Sekunden
 
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.

erich.wanker 6. Mai 2014 10:29

AW: Einfache Abfrage dauert 2 Sekunden
 
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... :pale:

Union 6. Mai 2014 10:44

AW: Einfache Abfrage dauert 2 Sekunden
 
Nochmal die Frage: Misst Du wirklich ausschließlich die Dauer der Abfrage oder wird da noch ein Grid oder weitere Kontrollelemente gefüllt?

erich.wanker 6. Mai 2014 10:49

AW: Einfache Abfrage dauert 2 Sekunden
 
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

baumina 6. Mai 2014 10:55

AW: Einfache Abfrage dauert 2 Sekunden
 
Evtl. bringt ein DisableControls / EnableControls vorher / nachher etwas.

erich.wanker 6. Mai 2014 12:04

AW: Einfache Abfrage dauert 2 Sekunden
 
:oops:

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 ] :pale:

Vielen Dank für eure Hilfe
und liebe Grüße aus dem Salzburgerland
Erich


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 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