/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
hvor lang tid en forespørgsel tar (mysql~
Fra : dscoop80
Vist : 684 gange
140 point
Dato : 20-09-05 22:56

Mht. PHP og MySQL så kan må få listed hvad man nu gør f.eks.
i en SELECT eller CREATE query...
jeg kan bare ikke huske hvordan?

jeg vil have den udskrift hvor man i bunden af et skema ser f.eks.: 20 rows in set (0.00 sec)
Altså jeg mener at jeg vil have tiden for hvor lang tid det har taget og køre en "SELECT"...

 
 
Kommentar
Fra : dscoop80


Dato : 20-09-05 22:58

Eksempel:

Hvis du f.eks. bruger "PHPmyadmin", og vælger at køre en "Query" derinde, så når du har kørt din
Query, får du svar tilbage, samt svar på hvor lang tid det har taget og køre den... -> f.eks. 2051 rows in set (3.21 sec)

Kommentar
Fra : natmaden


Dato : 21-09-05 08:06
Kommentar
Fra : dscoop80


Dato : 21-09-05 08:20

microtime() kan jeg ikke bruge... hvis man ser på forespørgsel fra "PHPmyadmin" og microtime() er de forskellige, hvilket de ikke må være... der må være en anden mulighed

Kommentar
Fra : Angband


Dato : 21-09-05 10:39

du skal nok regne tiden om


<?php
$time_start = microtime_float(true);

$result=mysql_query("select * from ???");

$time_end = microtime_float(true);
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";
?>

Accepteret svar
Fra : natmaden

Modtaget 140 point
Dato : 21-09-05 17:02

Angband -> Det er eksemblet fra phpmanualen, hvilket jeg også ville vælge.

Der er dog også en timerfunktion i mysql, jeg har støvet manualer gennem, uden at finde meget andet end.
variablen for mysql's oppetid, og den kan vel også bruges, lidt al'a microtime.
dscoop80 -> PHPmyadmin er da skrevet i php og bruger vel også microtime().


Kommentar
Fra : dscoop80


Dato : 21-09-05 17:16

natmaden -> ja det har du ret i, men hvis du prøver og bruge microtime() og PHPmyadmin på samme forespørgsel, så får du to forskellige værdier

Kommentar
Fra : Angband


Dato : 21-09-05 17:19

ellers så spørg i sql...

Natmaden ved det , men har en ide om at microtime_float(); giver mere præcist

Syntes også du skulle havde pointene hvis det skulle være svaret



Kommentar
Fra : Angband


Dato : 21-09-05 17:31

råkode taget fra phpmyadmin...

OBS tror der er copyright

[KODE]
// garvin: Measure query time. TODO-Item http://sourceforge.net/tracker/index.php?func=detail&aid=571934&group_id=23067&atid=377411
list($usec, $sec) = explode(' ',microtime());
$querytime_before = ((float)$usec + (float)$sec);

$result = @PMA_DBI_try_query($full_sql_query, NULL, PMA_DBI_QUERY_STORE);

list($usec, $sec) = explode(' ',microtime());
$querytime_after = ((float)$usec + (float)$sec);

$GLOBALS['querytime'] = $querytime_after - $querytime_before;
[/KODE]

kan du selv justere

Godkendelse af svar
Fra : dscoop80


Dato : 21-09-05 17:39

Tak for svaret natmaden.
                        

Kommentar
Fra : natmaden


Dato : 21-09-05 17:57

uden at teste, gætter jeg at microtime() giver en længere tid på en forespørgelse end phpadmin, og at dette skyldes,
tiden det tager at komme ind og ud af MySql.

med $sql = 'show status';
Finder man nederst variablen 'Uptime' den må kunne trækkes ud før og efter et kald.

Angband -> point er da dejlige, men i php er det nok ikke det der tæller
Hvis microtime_float() er nødvendig for er det da ok, men den har vist en længere kørselstid.


Kommentar
Fra : natmaden


Dato : 21-09-05 17:59

hov dscoop80, hvis du ikke kan bruge det , er der da ingen grund til at lukke.
Vi sidder jo her og bliver lettere klogere

Kommentar
Fra : dscoop80


Dato : 21-09-05 20:16

natmaden ->

troede ikke der var en anden mulighed... hehe...
jeg har testet "microtime()" vs. "phpmyadmin" og du har nemlig ret i at microtime()
er langsommere... det var så det jeg ville ha en løsning til :P

Kommentar
Fra : natmaden


Dato : 22-09-05 03:11

microtime er langsommere fordi at i beregningstiden, er startskaldet og slutskaldet til databasen.
denne tid kan du jo tække fra, ved at kende tiden på et tomt kald til databasen.
det er ca. den kode som Angband fermviser først,
om det er den måde at det skal gøres på...... hm. mysql er så fyldt med mulighedder ,
så at jeg simpelt hen bliver nød til at finde den funktion.
vender tilbage når at det lykkedes......[hulk]

Mvh. Jørgen

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste