Borrado de tablas

11/02/2008 - 09:02 por Viky V. | Informe spam
Hola,
Tenemos una tabla con más de 24 millones de registros, de la cual tenemos
que borrar aprox. la mitad (todos los datos del 2006). El proceso de borrado
es lentísimo, además de que nos satura el registro de transacciones y nos
bloquea todo el servidor ¿Hay alguna forma de borrar sin que el se regristre
en el log? ¿Alguna sugerencia para acelerar el proceso?
Nota: la tabla tiene índices por año y mes.

Gracias y un saludo,
 

Leer las respuestas

#1 Maxi
11/02/2008 - 13:27 | Informe spam
Hola, yo haria lo siguiente: borraria de a paquetes y no todo junto. Aca te
paso un Script de ejemplo para SQL 2005 (en 2000 lo podes adaptar lo mas
bien)
Al mismo ejemplo le podrias agregar tiempos de espera entre borrado y
borrado con la sentencias WAITFOR

CREATE TABLE ##PEDIDOS (ID INT IDENTITY, VALOR INT)
GO


DECLARE @N INT
SET @N = 1
WHILE @N <= 500
BEGIN
INSERT INTO ##PEDIDOS (VALOR) VALUES (@N+50)
SET @N = @N + 1
END


WHILE (SELECT COUNT(*) FROM ##PEDIDOS) > 0
BEGIN
DELETE TOP(50) FROM ##PEDIDOS
END





-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Viky V." escribió en el mensaje
news:
Hola,
Tenemos una tabla con más de 24 millones de registros, de la cual tenemos
que borrar aprox. la mitad (todos los datos del 2006). El proceso de
borrado
es lentísimo, además de que nos satura el registro de transacciones y nos
bloquea todo el servidor ¿Hay alguna forma de borrar sin que el se
regristre
en el log? ¿Alguna sugerencia para acelerar el proceso?
Nota: la tabla tiene índices por año y mes.

Gracias y un saludo,

Preguntas similares