Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2013, 08:35
erkalidj
 
Fecha de Ingreso: enero-2013
Ubicación: Huelva
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Borrado másivo, tarda mucho tiempo

Muy buenas.

Escribo este post porque en una tabla de costes, tengo que actualizar a cada X tiempo unos registros que provienen de otra tabla. Entonces pues lo que hago es filtrar los registros que quiero borrar con una consulta de eliminación y despues hago una consulta de anexar y restablezco los datos con los nuevos.

Para localizar los datos a borrar, uso un where especificando que es lo que quiero borrar.

La consulta es básica:

Código:
DELETE PARTES.IDPARTE, PARTES.TIPOPARTE, PARTES.FECHA, Month([FECHA]) AS MES, PARTES.SEMANA, PARTES.CODPARCELA, PARTES.HORASTRAGRICASA, PARTES.HORASPLUSTRAGRICASA, PARTES.HORASPLUSTRALQUILER, PARTES.HORASTRALQUILER, PARTES.HORASPEON, PARTES.HORASPODADOR, PARTES.HORASRECOLECCION, PARTES.SUELDOTOTALRECOLECCION, PARTES.OTROSGASTOS, PARTES.CODSUELDO, PARTES.CODTAREA, PARTES.PARTESEMANALCODTAREA, PARTES.PARTESEMANALOTRASTAREAS, PARTES.CODTRACTOR, PARTES.CODMAQUINARIA, PARTES.CALDO, PARTES.HERBICIDAIDPASE, PARTES.HERBICIDACODAPLICADOR, PARTES.COSECHACUADRILLACATEGORIA, PARTES.COSECHACAMPAÑA, PARTES.TRATAMIENTOSNUMTRATAMIENTO, PARTES.TRATAMIENTOSAPLICADOR, PARTES.TRATAMIENTOSPROBLEMAS, PARTES.ENCARGADO, PARTES.OBSERVACIONES
FROM PARTES
WHERE (((PARTES.TIPOPARTE)="GASTOS GENERALES - PARTES 2012" Or (PARTES.TIPOPARTE)="GASTOS GENERALES - CONTABILIDAD 2012"));
Pues esta consulta, para borrar unos 65.000 registros de un total de 300.000 me puede durar unos 20-30 minutos en hacerla. Sin embargo, a la hora de anexar de nuevo los datos tan sólo me dura 1-2 minutos.

Uso Access como cliente y ms sqlserver 2000 como servidor.

¿Alguna sugerencia?
Muchas gracias de antemano.