Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dauer einer Abfrage ermittlen (https://www.delphipraxis.net/39263-dauer-einer-abfrage-ermittlen.html)

Luckie 31. Jan 2005 01:01


Dauer einer Abfrage ermittlen
 
Ich benutze mySQL und würde gerne wissen, wie lange eine Abfrage dauert. In dem Admintool steht zum Beispiuel immer so was:
Zitat:

57 rows in set (0.00) sec
Ich habe schon hier: http://dev.mysql.com/doc/mysql/de/c-api-functions.html gekuckt, aber nichts passendes gefunden.

resolution 31. Jan 2005 04:16

Re: Dauer einer Abfrage ermittlen
 
das geht meines wissens nur so, dass du n timestamp vor dem query erzeugst und dann mit dem timestamp nach dem query verrechnest..

Luckie 31. Jan 2005 07:18

Re: Dauer einer Abfrage ermittlen
 
Hm. Das scheint mir nicht ganz befriedigend.

Bernhard Geyer 31. Jan 2005 07:21

Re: Dauer einer Abfrage ermittlen
 
Mir wäre bei MySQL auch nichts einfachers bekannt.

Bei MS-SQL gäbe es dazu den Profiler, welcher ohne Codeänderung von bestehenden Programmen alle Statements, welche bei der Datenbank ankommen nach User, Anwendung, PC, SQL-String, Read, Writes und auch Duration loggen kann.
Evtl. gibt es ja sowas auch (Kostenpflichtig) bei MySQL, Einfach mal nach MySQL und Profiling suchen.

Phoenix 31. Jan 2005 07:52

Re: Dauer einer Abfrage ermittlen
 
Zitat:

Zitat von Luckie
Ich benutze mySQL und würde gerne wissen, wie lange eine Abfrage dauert. In dem Admintool steht zum Beispiuel immer so was:
Zitat:

57 rows in set (0.00) sec

Erm. Mal ne ganz blöde Frage: Hast Du schon im Quellcode vom Admin-Tool nachgeguckt wie die die Information rausfinden? Müsste doch per Textsuche nach den kleinen Wörtchen rauszufinden sein, oder?

merlin17 31. Jan 2005 07:58

Re: Dauer einer Abfrage ermittlen
 
evtl. so etwas:


Delphi-Quellcode:
var
    c, t1, t2: int64;
begin
  QueryPerformanceFrequency(c);
  QueryPerformanceCounter(t1);
  DM.QFAD.Open;
  QueryPerformanceCounter(t2);
  Label1.Caption := IntToStr((t2 - t1) * 1000 div c) + ' ms';


:-) thomas

SubData 31. Jan 2005 08:58

Re: Dauer einer Abfrage ermittlen
 
Also meines Wissens nach machen das z. B. Web Boards (vbb, wbb, burning board) auch nicht anders...
Ich hab dafür diese Funktion benutzt... Vielleicht haste die schonmal irgendwo gesehen :mrgreen:

Luckie 31. Jan 2005 09:00

Re: Dauer einer Abfrage ermittlen
 
Zitat:

Zitat von Phoenix
Zitat:

Zitat von Luckie
Ich benutze mySQL und würde gerne wissen, wie lange eine Abfrage dauert. In dem Admintool steht zum Beispiuel immer so was:
Zitat:

57 rows in set (0.00) sec

Erm. Mal ne ganz blöde Frage: Hast Du schon im Quellcode vom Admin-Tool nachgeguckt wie die die Information rausfinden? Müsste doch per Textsuche nach den kleinen Wörtchen rauszufinden sein, oder?

Ja, hab eich schon versucht, aber entweder finde ich es nicht oder sie zeigen nicht, wie sie es machen. ich sehe immer nur die Querys:
Zitat:

SELECT *
FROM `kontakte`
So was zum Beispiel. Aber ich denke mal, dass es sich um einen Funktionsaufruf handelt, der mir nicht angezeigt wird oder so.

SubData 31. Jan 2005 09:02

Re: Dauer einer Abfrage ermittlen
 
Ich denke mal, dass die Datenbank selbst vielleicht sonen Performance Counter drin hat ?!

resolution 31. Jan 2005 11:24

Re: Dauer einer Abfrage ermittlen
 
@subdata, nein *g*

Luckie: fragen wir mal welche methode genauer wäre, wenn die db selbst liefern würde wielange ein query dauert (und diese muss es JA AUCH genauso machen, anders gehts doch nit..und mal ehrlich, da es nicht jeder braucht wäre es schlecht, denn es würde jedes query minimal verlangsamen, und wer es braucht hat andere wege, es sei denn er sträubt sich *G*) oder wenn das programm selbst mittels timestamp after-before auswertet?
bevor dein programm letztendlich das result hat dauerts auch noch etwas und diese zeit kann die db nicht erfassen ;)

naja, phpmyadmin (jaja, is nur ne scriptsprache, dennoch wäre es DEFINITIV in php integriert wenn mysql query_time oder so unterstützt ;) machts auch über microtime manuell und ich kann daran überhaupt nichts negatives erkennen..


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