« Home | Tihany en MTY » | BSOD Saver » | CURP » | Safe Drive » | Quien te ha eliminado del MSN » | HSBC » | Ig Nobel (Fracaso Exitoso) » | Creative Commons » | De compras.... » | ENLACE (ISAR rule's) » 

miércoles, noviembre 15, 2006

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).

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
Saludos!

Etiquetas: ,

E-mail this post



Remember me (?)



All personal information that you provide here will be governed by the Privacy Policy of Blogger.com. More...

Add a comment

 

About me

  • I'm CVN
  • From Mexico

My profile

Archives

    www.flickr.com
    This is a Flickr badge showing public photos from CVN. Make your own badge here.