Optimisation de requêtes

Résolu
zeldoi5 Messages postés 58 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 13 novembre 2005 - 28 avril 2005 à 17:50
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 29 avril 2005 à 17:43
Bonjour tout le monde!
Dans le cadre d'un projet je dois réaliser des statistiques sous forme de graphiques et radars.
Pour ceci j'utilise JpGraph (j'ai aussi essayé ChartDirector)
Mais j'ai un gros soucis, car la requête que 'jeffectue à l'air de faire flancher le serveur (Xeon 700) sur lequel je travaille.

Je dois faire des moyennes sur des mesures inscrites en base tous les 1/4 heure :

<?
$dateToday = date("Y-m-d");
$annee = date("Y");
$mois = date("m");
$jour = date("d");
$heure = date("H");
$minute = date("i");
$seconde = date("d");
$s = 0;
$heureTotale = date("H:i:s");

//Etablit la connexion avec le serveur de base de données, ainsi qu'à la base
server_connect("localhost","","");
//Etablit la connexion à la base de données
bdd_connect("theBDD");

for ($h=12;$h <= $heure;$h++)
{
for ($m=0;$m <= 45;$m=$m+15)
{
$h1 = $h + 1;
$m0 = ":0";
$s0 = ":0";
$m1 = $m + 15;
$heureprecedente = $h .":". $m . $s0;
$heuresuivante = $h .":". $m1 . $s0;
if ($m < 45)
{
$query = 'select AVG(ms.MESURE_RAM), AVG(ms.MESURE_CPU), AVG(mme.TR), AVG(l.TR)'
. ' FROM mesure_syst ms, mesure m, mesure_meta mme, mesure_lan l'
. ' WHERE m.ID_MESURE = ms.ID_MESURE'
. ' AND m.ID_MESURE = mme.ID_MESURE'
. ' AND m.ID_MESURE = l.ID_MESURE '
. ' AND m.DATE_MESURE = "' . $dateToday . '" '
. ' AND m.HEURE_MESURE between "' . $heureprecedente . '" and "' . $heuresuivante . '" ';
}
else
{
$heureprecedente = $h .":". $m . $s0;
$m1 = 59;
$heuresuivante = $h .":". $m1 . $s0;
$query = 'select AVG(ms.MESURE_RAM), AVG(ms.MESURE_CPU), AVG(mme.TR), AVG(l.TR)'
. ' FROM mesure_syst ms, mesure m, mesure_meta mme, mesure_lan l'
. ' WHERE m.ID_MESURE = ms.ID_MESURE'
. ' AND m.ID_MESURE = mme.ID_MESURE'
. ' AND m.ID_MESURE = l.ID_MESURE '
. ' AND m.DATE_MESURE = "' . $dateToday . '" '
. ' AND m.HEURE_MESURE between "' . $heureprecedente . '" and "' . $heuresuivante . '" ';
}
$resultQuery = mysql_query($query);
$rowQuery = mysql_fetch_row($resultQuery);
$row1[$h] = $rowQuery[0]/1000;
$row2[$h] = $rowQuery[1];
$row3[$h] = $rowQuery[2];
$row4[$h] = $rowQuery[3];

$tx_RAM[$h] = $row1[0];
$tx_CPU[$h] = $row2[0];
$tx_META[$h] = $row3[$h];
$tx_LAN[$h] = $row4[$h];

echo("Charge RAM en performance entre $heureprecedente et $heuresuivante : $tx_RAM[$h] ");
echo("Charge CPU moyenne en performance entre $heureprecedente et $heuresuivante : $tx_CPU[$h]");
echo("Temps de réponse moyen en performance M entre $heureprecedente et $heuresuivante : $row3[$h]");
echo("Temps de réponse moyen LAN en performance entre $heureprecedente et $heuresuivante : $row4[$h]");

}
}

// ensuite vient l'affichage....... (je ne vais pas décrire la suite....)
?>

Apparemment le serveur flanche, car quand l'heure (c'est à dire la variable $heure) est inférieure à 12, ça fonctionne, mais après :
Fatal error: Maximum execution time of 30 seconds exceeded in d:\www\reporting\ben\ebl\courbes_4s.php on line 79

Avec la ligne 79 : $resultQuery = mysql_query($query);

Pouvez vous m'aider s'il vous plaît?
Ya t'il un moyens d'optimiser la requête? Ou même (solution pir) de fixer le temps d'excution de la requête à un temps supérieur que 30 secondes ??

24 réponses

zeldoi5 Messages postés 58 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 13 novembre 2005 2
29 avril 2005 à 16:57
Au fait : MERCI BEAUCOUP!!!!!!!!!!!!!!!!!!
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 avril 2005 à 17:14
Tu peux cliquer sur "réponse acceptée" stp ? (sur les posts t'ayant aidé à résoudre ton problème)



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
zeldoi5 Messages postés 58 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 13 novembre 2005 2
29 avril 2005 à 17:36
Voici c'est fait!

Bon week end!
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 avril 2005 à 17:43
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous