Tema: Cursores
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2011, 10:03
gylle05
 
Fecha de Ingreso: marzo-2009
Mensajes: 291
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta Cursores

BUenas amigos....les comento tengo un Procedimiento Almacenado en el cual tengo tres cursores, el tema esta ke se pone muy lenta la consulta demora 5 segundos en insertar un registro y son 50.000 o sea entre 60 horas me demora es muchisimo....es normal ke demore tanto el motor mysql???? tenia entendido ke era muy rapido??? hay alguna solucion???? les dejo mi codigo

EGIN
DECLARE done INT DEFAULT 0;
declare cuot varchar(10);
declare ultimo varchar(10);
declare pagador varchar(10);
declare comp varchar(10);
declare cat varchar(10);
declare fecuo date;
declare nro int;
declare pagC double;
declare mont double;
declare resul double;
declare band bool;
declare curM cursor for select idpagador,compania,categoria, numero from movimientos group by idpagador,compania,categoria, numero;
declare curmax cursor for select max(fcuota) from movimientos where idpagador=pagador and compania=comp and categoria=cat and numero=nro and tipo='R' limit 1;
declare curP cursor for SELECT cuota,monto FROM movimientos where idpagador=pagador and compania=comp and categoria=cat and numero=nro and fcuota=fecuo and tipo='R' limit 1;


DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

open curM;

Repeat
FETCH curM INTO pagador,comp,cat,nro;
IF NOT done THEN
open curmax;
Fetch curmax into fecuo;

open curP;
Fetch curP into cuot,mont;
insert into tpagos(hora)values(CURRENT_TIMESTAMP);
close curP;

close curmax;

end if;
UNTIL done END REPEAT;

close curM;
espero ke puedan ayudarme muchas gracias!!!!!