Borrado Masivo PLSQL
Hoy descubri el hilo negro del borrado masivo de tablas...jeje. Pues resulta que necesitaba borrar una tabla para cierta fecha, debido a que cada fecha a borrar contenia muchos registros (>700000) y no estaba borrando, por que me sobrara espacio, se me desbordaba el Rollback segments, la solucion, hacer commits cada cierto numero de registros...y no hasta el final.
Este es el script usado...por si les sirve. (Lo verde debe ser sustituido por :nombre de la tabla,condicion,numero de registros para el commit).
Este es el script usado...por si les sirve. (Lo verde debe ser sustituido por :nombre de la tabla,condicion,numero de registros para el commit).
spool /Internet/log/cdel200610.log
BEGIN
DECLARE Cursor c1 is
select rowid
from tabla
where present_date = 061003;
concomm number;
BEGIN
concomm:=0;
for cr1 in c1 loop
delete tabla
where rowid = cr1.rowid;
concomm:= concomm + 1;
if concomm = 50 then
commit;
concomm:=0;
end if;
end loop;
end;
end;
/spool off
exit
exit
Saludos!
Etiquetas: BD, Programacion
No comment