Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2011, 17:20
Avatar de SirDuque
SirDuque
 
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 3 meses
Puntos: 89
Optimizar codigo[por que excede tiempo de ejecucion]

Hola chicos, estoy trabajando en varias tablas para armar una.
se analizan 12mil registros y se crean 12mil en otra tabla.
el problema es que tengo que sacar informacion de dos tablas mas.
le di 130segundos de ejecucion y todavia falta, no entiendo por que tarda tanto espero que me puedan ayudar.

Código PHP:
Ver original
  1. $SQL_1 = "SELECT dato1,dato2,dato3 FROM concuota_temp WHERE tipo='SO3' ORDER BY `concuota_temp`.`fecha` DESC ";
  2.  
  3. $SO3    =   mysql_query(    $SQL_CONCUOTA   );
  4. $row    =   0;
  5. while(  $r  =   mysql_fetch_array( $SO3 )   )
  6. {  
  7.     $SQL_BUSCAR_DATO    =   "SELECT dato1,dato2,dato3,dato4,dato5,dato6,dato7 FROM compraso_temp WHERE socio='".$r['dato1']."' AND factura='".$r['dato2']."'";
  8.     $QUERY_BUSCAR_DATO = mysql_query( $SQL_BUSCAR_DATO ) or die ( mysql_error() );
  9.     $d = mysql_fetch_assoc( $QUERY_BUSCAR_DATO );
  10.     $SQL_PORCENTAJE = "SELECT dato1,dato2,dato3,dato4,dato5,dato6,dato7,dato8,dato9,dato10,dato11,dato12,dato13 FROM proveedor_temp WHERE id='".$d['dato1']."'";
  11.     $QUERY_PORCENTAJE = mysql_query($SQL_PORCENTAJE);
  12.     $p = mysql_fetch_assoc( $QUERY_PORCENTAJE );
  13.         if ( $r['dato4] == $p['dato1'] )
  14.         {
  15.             $porcentaje = $p['dato6'];
  16.         }elseif( $r['dato4]  == $p['dato2'] )
  17.         {
  18.             $porcentaje = $p['dato7'];
  19.         }elseif( $r['dato4] == $p['dato3'])
  20.         {
  21.             $porcentaje = $p['dato8'];
  22.         }
  23.         $SQL_INSERT =   "INSERT INTO archivo (`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`,`columna`) VALUES ('".$d['dato2']."','".$d['dato3']."','".$d['dato4']."','".$d['dato5']."','10:00:00','".$d['dato6']."','$porcentaje','".$d['dato7']."','".$d['dato8']."','".$d['dato9']."','9','1','".$r['dato10']."')";
  24.         mysql_query($SQL_INSERT) or die (mysql_error());
  25.     $row++;
  26. }
  27. mysql_close($db_con);
  28. echo "<p>".$row." Registros agregados en db1.archivo.</p>";

Nota: modifique columna y dato para que no sea pueda entender mas...
La idea es optimizarlo, ya que me parecen poco 12mil. registros.

NOTA:(mysql_fetch_assoc) lo cambie por "mysql_fetch_array" y no tiene cambio alguno.
__________________
Mono programando!
twitter.com/eguimariano