Kai-Behncke
Erfahrenes Mitglied
Hallo liebe Leute,
ich habe eine Applikation mit relativ umfangreichen Datenbankabfragen.
Ich suche eine Möglichkeit mir in PHP anzeigen zu lassen, wie lange eine solche Abfrage dauert.
Gefunden habe ich bisher:
Das Problem: Diese Abfrage ist nicht identisch dazu, wenn ich z.B. direkt in der Datenbank mir die Zeit ausgeben lasse mit:
In dem PHP-Skript bekomme ich immer etwas höhere Werte (ca. +15 ms) heraus.
Woran könnte das liegen?
Sind das vielleicht "Mehrkosten" für das Ausführen der Funktion?
Gibt es eventuell eine andere,bessere Art und Weise der Zeitmessung?
Danke, Kai
ich habe eine Applikation mit relativ umfangreichen Datenbankabfragen.
Ich suche eine Möglichkeit mir in PHP anzeigen zu lassen, wie lange eine solche Abfrage dauert.
Gefunden habe ich bisher:
Code:
function uniqueTimeStamp() {
$milliseconds = microtime();
$timestring = explode(" ", $milliseconds);
$sg = $timestring[1];
$mlsg = substr($timestring[0], 2, 4);
$timestamp = $sg.$mlsg;
return $timestamp;
}
$start = uniqueTimeStamp();
//Abfrage ob Start/End-Punkt in Geometrie eines Bundeslandes liegen
$bundesland_abfrage=@pg_query("SELECT * from bundesland WHERE ST_Contains(the_geom,
$punktgeometrie_start) AND ST_Contains(the_geom, $punktgeometrie_ende)");
$bundesland_result=@pg_result($bundesland_abfrage,0,bundesland);
$ende = uniqueTimeStamp();
$differenz = $ende-$start;
$differenz = $differenz/10; // warum auch immer
$differenz = (int)$differenz;
echo "Die Ausführung dauerte $differenz ms";
Das Problem: Diese Abfrage ist nicht identisch dazu, wenn ich z.B. direkt in der Datenbank mir die Zeit ausgeben lasse mit:
Code:
EXPLAIN ANALYZE SELECT * from bundesland WHERE ST_Contains(the_geom,
$punktgeometrie_start) AND ST_Contains(the_geom, $punktgeometrie_ende)
In dem PHP-Skript bekomme ich immer etwas höhere Werte (ca. +15 ms) heraus.
Woran könnte das liegen?
Sind das vielleicht "Mehrkosten" für das Ausführen der Funktion?
Gibt es eventuell eine andere,bessere Art und Weise der Zeitmessung?
Danke, Kai