[Optimisation] SQL et boucles
Salut a tous !
Alors, voici ma situation :
j'ai une fonction qui me retourne le resultat d'une requete dans un tableau associatif, dont les clés sont les champs de ma table ...
J'ai ensuite d'autres fonctions qui font un traitement sur ce tableau ...
Dans un certains cas, mon tableau contient 20 clés pour 10912 valeurs par clé.
Le probleme, c que pour ce cas, mon script est beaucoup trop long.
En faisant une fonction de test, qui se place dans mon cas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
function testBoucles()
{
//pour chaque ligne
for($i=0;$i<10912;$i++)
{
$strmachin.="machin \n";
//pour chaque clé
for($j=0;$j<20;$j++)
{
$strmachin.="machin \n";
//boucle de traitement test pour clé, ligne courante
for ($k=0;$k<10;$k++)
{
$strmachin.="machin \n";
getArraySqlValue($aPhp_ResultSql,$i,$j);
}
}
}
echo $strmachin;
} |
Dans ces boucles imbriquées, j'appelle uniquement la fonction getArraySqlValue();
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function getArraySqlValue($aPhp_ResultSql,$intSqlLine,$intSqlCol)
{
global $glb_aSqlKeyCols;
$colId=$glb_aSqlKeyCols[$intSqlCol];
$strContenuCel=$aPhp_ResultSql[$colId][$intSqlLine];
return $strContenuCel;
} |
Je fais un die juste apres la fonction testBoucle, mon script met 41 sec a s'executer ...
Pensez vous que c normal, et auriez vous des idées d'optimisation ?
Merci bien pour votre aide !
@+. :wink: