Update muy muy lento
Publicado por Marta (30 intervenciones) el 01/06/2007 13:51:44
Mi problema es muy simple. Tengo que hacer un update de una tabla para bastantes registros (a lo mejor 200.000, que tampoco son tantos, pero bueno).
UPDATE FICHERO_NAVIERA
set ESTADOCUPON= '2'
WHERE ESTADOCUPON= '13'
AND ID_FICHERO_HISTORIAL =xxxx
Como de esta forma me tarda mucho, me he creado un procedimiento para que cada 1000 registros haga un commit (por si ese fuera el problema):
DECLARE
MILLARES NUMBER(10);
BEGIN
SELECT CEIL(COUNT(*)/1000)
INTO MILLARES
FROM FICHERO_NAVIERA;
FOR I IN 1..MILLARES LOOP
UPDATE FICHERO_NAVIERA
set ESTADOCUPON= '2'
WHERE ESTADOCUPON= '13'
AND ID_FICHERO_HISTORIAL = xxx
AND ROWNUM <= 1000;
COMMIT;
END LOOP;
END;
Pero nada, me va muy muy lento.... qué puedo hacer?? es problema del update o de la base de datos??
Gracias.
UPDATE FICHERO_NAVIERA
set ESTADOCUPON= '2'
WHERE ESTADOCUPON= '13'
AND ID_FICHERO_HISTORIAL =xxxx
Como de esta forma me tarda mucho, me he creado un procedimiento para que cada 1000 registros haga un commit (por si ese fuera el problema):
DECLARE
MILLARES NUMBER(10);
BEGIN
SELECT CEIL(COUNT(*)/1000)
INTO MILLARES
FROM FICHERO_NAVIERA;
FOR I IN 1..MILLARES LOOP
UPDATE FICHERO_NAVIERA
set ESTADOCUPON= '2'
WHERE ESTADOCUPON= '13'
AND ID_FICHERO_HISTORIAL = xxx
AND ROWNUM <= 1000;
COMMIT;
END LOOP;
END;
Pero nada, me va muy muy lento.... qué puedo hacer?? es problema del update o de la base de datos??
Gracias.
Valora esta pregunta
0