Método para eliminar por "Montones"

15/05/2007 - 19:00 por ::romovi:: | Informe spam
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Estimados!!!<br>
Tengo una duda y es si existe alg&uacute;n m&eacute;todo para poder borrar grandes
cantidades de datos en forma r&aacute;pida.<br>
<br>
Explico un caso&nbsp; pr&aacute;ctico:<br>
<br>
En una tabla con m&aacute;s de 6 millones de registros se requiere eliminar
todo lo anterior al a&ntilde;o actual, aproximadamente 4 millones de registros
a eliminar.<br>
<br>
con la instrucci&oacute;n <b>DELETE FROM nombreTabla WHERE
campoFecha&lt;'01-01-2007'<br>
</b>es una locura ya que se demora demasiado tiempo y el registro de
transacciones crece demasiado.<br>
<br>
Alguna idea para poder optimizar esto que parece tan sencillo ????<br>
<br>
Desde ya se agradece su ayuda. <br>
<br>
Saludos,<br>
<br>
::romovi::<br>
<br>
</body>
</html>

Preguntas similare

Leer las respuestas

#1 Javier Loria
15/05/2007 - 19:38 | Informe spam
Hola:
Usas SQL 2005? Usas la version corporativa?. Si la respuesta es si en
ambas ocasiones puedes utilizar particiones.
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"::romovi::" wrote in message
news:
Estimados!!!
Tengo una duda y es si existe algún método para poder borrar grandes
cantidades de datos en forma rápida.

Explico un caso práctico:

En una tabla con más de 6 millones de registros se requiere eliminar todo lo
anterior al año actual, aproximadamente 4 millones de registros a eliminar.

con la instrucción DELETE FROM nombreTabla WHERE campoFecha<'01-01-2007'
es una locura ya que se demora demasiado tiempo y el registro de
transacciones crece demasiado.

Alguna idea para poder optimizar esto que parece tan sencillo ????

Desde ya se agradece su ayuda.

Saludos,

::romovi::
Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
16/05/2007 - 02:07 | Informe spam
En el post , "Norman A. Armas"
<lllliiinnk hotmail com> DIJO .
Si usas 2000 puedes poner el SET ROWCOUNT en una cifra baja por ejemplo 1000 y hacer un ciclo hasta que el @@RowCount te retorne 0.Si usas el 2005 puedes hacer lo mismo pero usando el TOP y el @@RowCountsaludosNorman"::romovi::" wrote in message news:!!!
Tengo una duda y es si existe algún método para poder borrar grandes cantidades de datos en forma rápida.

Explico un caso práctico:

En una tabla con más de 6 millones de registros se requiere eliminar todo lo anterior al año actual, aproximadamente 4 millones de registros a eliminar.

con la instrucción DELETE FROM nombreTabla WHERE campoFecha<'01-01-2007'
es una locura ya que se demora demasiado tiempo y el registro de transacciones crece demasiado.

Alguna idea para poder optimizar esto que parece tan sencillo ????

Desde ya se agradece su ayuda.

Saludos,

::romovi::






Si borras de bloques asegurate de hacer el backup de log porque sino
igualmente va a crecer mucho.



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida