Foros del Web » Programando para Internet » PHP »

Como monitorear programa PHP

Estas en el tema de Como monitorear programa PHP en el foro de PHP en Foros del Web. Estimados: Asumamos que hay una tabla llamada FACTURACION que sería la cabecera de una factura (codigo de cliente, iva, etc) y sus ítems (codigo de ...
  #1 (permalink)  
Antiguo 06/12/2012, 16:25
 
Fecha de Ingreso: enero-2003
Mensajes: 120
Antigüedad: 21 años, 10 meses
Puntos: 0
Pregunta Como monitorear programa PHP

Estimados:

Asumamos que hay una tabla llamada FACTURACION que sería la cabecera de una factura (codigo de cliente, iva, etc) y sus ítems (codigo de articulo, detalle, importe) en la segunda tabla llamada DETALLEF.

El siguiente programa borra todo de un período ingresado en las dos tablas, la 2da tabla DETALLEF es medio grande, tiene 14 millones de registros, mi problema es que demora bastante y no puedo o no se como monitorear para que vaya mostrando por donde va.

Código:
// en la siguiente instrucción armo la fecha "2012-06-12 00:00:00"
  $pe="20". substr($p, 6, 2). "-". substr($p, 3, 2)."-".substr($p, 0, 2). " 00:00:00";
// busco las facturas en ese período
   $a="select * from facturacion where periodo = '". $pe. "'"; 
   $prepare=mysql_query($a);
   while ($row=mysql_fetch_array($prepare)){
// borro los items de la factura encontrada en el período
		  $d="delete from detallef where matricula ='".$row[matricula]."' and trim(factura)='".trim($row[nrofactura])."'";
		  $x=mysql_query($d);
// Borro la factura en curso
		  $d2="delete from facturas where id = '". $row[id]. "'";
		  $x2=mysql_query($d2);   
   } // en while
Yo creé un indice en DETALLEF que incluye la matricula y el numero de factura, campos que están en el Where de la instrucción SQL.

Que puedo hacer?

Muchas Gracias.
__________________
Sergio.
  #2 (permalink)  
Antiguo 06/12/2012, 16:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Como monitorear programa PHP

Puedes usar LIMIT en el DELETE con una cierta cantidad de registros e iterar para que vaya borrando por partes y mostrar el progreso.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/12/2012, 17:03
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Como monitorear programa PHP

Por que no pones un echo por cada registro para que vayas viendo si esta trabajando? si vas a borrar desde una aplicación que creaste pero quieres ver donde va te puedo dar la soluciòn, claro que esta solución solo es viable siempre y cuando el servidor este en linux o unix y que tengas acceso de root a el.

Lo que puedes hacer es darle un seguimiento a MySQL con un comando que se llama tail, entonces supongamos que estas en tu terminal de Linux harias esto

Código BASH:
Ver original
  1. user@tuserver# tail -f /etc/mysql/access.log

Donde la ruta y el archivo depende de donde lo tengas configurado.

Es una opciòn del lado del servidor, para que la veas en el lado del cliente como te comento arriba puedes estar usando un echo.
  #4 (permalink)  
Antiguo 06/12/2012, 17:30
 
Fecha de Ingreso: enero-2003
Mensajes: 120
Antigüedad: 21 años, 10 meses
Puntos: 0
Respuesta: Como monitorear programa PHP

Gracias Reedyseth lo del Tail si bien muestra información muestra muchas cosas porque es un servidor de producción y hay mucha gente accediendo.
en mi caso está en /var/log/apache2
Muchas gracias.
__________________
Sergio.
  #5 (permalink)  
Antiguo 06/12/2012, 17:43
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Como monitorear programa PHP

bueno si muestra cosas que no utilices busca el patron que usas y le agregas un grep para buscar la cadena o patron que quieras, con eso filtras la salida.
  #6 (permalink)  
Antiguo 06/12/2012, 19:48
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: Como monitorear programa PHP

Holas,

Que tipo de tabla usas myisam o innodb?.

Mientras mas llames a la base de datos mas lento haces a tu aplicación. Creo que mas podrias optimizar en el sql y tambien en usas restricciones en cascada.

saludos
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 07/12/2012, 06:52
 
Fecha de Ingreso: enero-2003
Mensajes: 120
Antigüedad: 21 años, 10 meses
Puntos: 0
Respuesta: Como monitorear programa PHP

Creé las tablas con phpmyadmin no se que tipo de tablas, serán las que se crean por defecto.
Veo que me falta mucho por aprender.
Muchas gracias por responder.
__________________
Sergio.
  #8 (permalink)  
Antiguo 07/12/2012, 11:35
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Como monitorear programa PHP

Si te vas en la parte de operaciones sobre tabla en phpmyadmin pudes ver la maquina que usa tu tabla la diferencia entre MyISAM y InnoDB es que MyISAM ignora cualquier tipo de constraints que le pongas a tu base de datos. InnoDB si toma en cuenta todos los constraints y ademas te arroja errores si uno fue violado.

Etiquetas: monitorear, programa, sql, tabla
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 12:12.