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

No comment

Add a comment

 

About me

  • I'm CVN
  • From Mexico

My profile

Archives

    • Septiembre 2007
    • Julio 2007
    • Junio 2007
    • Abril 2007
    • Marzo 2007
    • Mes de mi Bday 2007
    • Enerito 2007
    • Por fin... 2006
    • Noviembre 2006
    • Octubre 2006
    • Septiembre 2006
    • Mes de Bday de mi Drika 2006
    • Julio 2006
    • Mayo 2006
    • Abril 2006
    • Marzo 2006
    • Mes de mi Bday 2006
    • Enerito 2006
    • Por fin... 2005
    • Noviembre 2005
    • Octubre 2005
    • Septiembre 2005
    • Mes de Bday de mi Drika 2005
    • Julio 2005
    • Junio 2005
    • Mayo 2005
    • Abril 2005
    • Marzo 2005
    • Mes de mi Bday 2005
    • Enerito 2005
    • 30 meses trabajando para usted

    www.flickr.com