Foros del Web » Programando para Internet » PHP »

Operaciones con poco tiempo de ejecucion en php

Estas en el tema de Operaciones con poco tiempo de ejecucion en php en el foro de PHP en Foros del Web. Buen dia como estan soy nuevo en este foro y la verdad me parece genial esta web es muy grato estar aca y espero que ...
  #1 (permalink)  
Antiguo 23/11/2008, 07:59
 
Fecha de Ingreso: noviembre-2008
Ubicación: Lima
Mensajes: 48
Antigüedad: 15 años, 4 meses
Puntos: 2
Operaciones con poco tiempo de ejecucion en php

Buen dia como estan soy nuevo en este foro y la verdad me parece genial esta web es muy grato estar aca y espero que me puedan ayudar asi como yo tambien poder contribuir con alguito.

mi pregunta es la siguiente:
estoy cargando un archivo de texto con ajax lo cual tiene algunas reglas que cumple como por ejemplo sacar los primero 12 caracteres luego ejecutar una consulta en la bd mysql la cosa es que son como 461234 registros y para ejecutarlos tarda como 1 hora aproximadamente y la verdad yo quisiera hacerlo en menos tiempo no se si me puedan ayudar en esto aqui les dejo el codigo:

Código PHP:
<?php
include('adodb5/adodb.inc.php');
$conn1 = &ADONewConnection('mysql');  # create a mysql connection
$conn1->PConnect('localhost''root''''database');
set_time_limit (0);
   
// Edit upload location here
   
$destination_path getcwd().DIRECTORY_SEPARATOR;

   
$result 0;
   
   
$target_path $destination_path .'/archivos/'basename$_FILES['myfile']['name']);

   if(@
move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
      
     
$lineas fopen($target_path,'r');
        
$contenido fread($lineasfilesize($target_path));
        
$texto nl2br($contenido);
        
$nuevo_t=explode("<br />",$texto);
        
$num_ele=count($nuevo_t);
        
$t="";
        
$i=1;
        while(
$i<$num_ele){
           
$t=trim(substr($nuevo_t[$i],0,12));
                       
$conn1->Execute("update tabla set dato1 = 1 where dato2 = $t;");
                
$i++;
                
        }
        
$result 2;
   }
   
   
sleep(1);
?>

Última edición por jam1138; 23/11/2008 a las 11:27 Razón: Coloreo código
  #2 (permalink)  
Antiguo 30/11/2008, 21:09
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Operaciones con poco tiempo de ejecucion en php

Has intentado hacer un Store Procedure en lugar de hacerlo por un script de PHP?
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #3 (permalink)  
Antiguo 01/12/2008, 04:01
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: Operaciones con poco tiempo de ejecucion en php

¿Donde esta tu cuello de botella? ¿En sacar la lista de 12 caracteres o en las llamadas a la base de datos? Para disminuir el numero de las llamadas a base de datos puedes usar el IN en el where, ya que asignas el mismo valor:

update tabla set dato1 = 1 where dato2 IN (valor1, valor2, valor3, ....);

Puedes dividir la operacion en bloques mas pequeños, de 30 en 30, por ejemplo.
  #4 (permalink)  
Antiguo 01/12/2008, 10:39
 
Fecha de Ingreso: noviembre-2008
Ubicación: Lima
Mensajes: 48
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Operaciones con poco tiempo de ejecucion en php

el cuello de botella esta en el execute, ya que sin esa operacion execute la ejecucion del programa demora solo segundos. A proposito Darkj como podria seapararlo en bloques mas pequeños de 30 en 30, por que tambien lo he hecho separandolo en arreglo y demora igual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:56.