Depuración Optima

12/10/2005 - 17:22 por Pao | Informe spam
Este query que tan optimo es o que mejoras se pueden hacer para estos casos,
SQLserver 2000 con sp3.
Muchas gracias.

use sms_cliente
go

declare @w_fecha as datetime,@w_cuenta int
select @w_fecha = getdate()

select count(*) from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)


set rowcount 10000
while (select count(*) from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)) > 0
begin
insert into sms_res_enviadas_his
select * from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)

delete sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)
end

dump tran sms_cliente with no_log
 

Leer las respuestas

#1 Maxi
12/10/2005 - 17:32 | Informe spam
Hola, podrias hacerlo asi:

declare @err bigint

begin tran
insert into sms_res_enviadas_his
select * from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,getdate())
set @err = @@error
if @err <> 0
begin
rollback trans
end
delete sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,getdate())

set @err = @@error
if @err <> 0
begin
rollback trans
end

commit trans


Salu2
Maxi [MVP SQL SERVER]


"Pao" escribió en el mensaje
news:
Este query que tan optimo es o que mejoras se pueden hacer para estos
casos,
SQLserver 2000 con sp3.
Muchas gracias.

use sms_cliente
go

declare @w_fecha as datetime,@w_cuenta int
select @w_fecha = getdate()

select count(*) from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)


set rowcount 10000
while (select count(*) from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)) > 0
begin
insert into sms_res_enviadas_his
select * from sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)

delete sms_res_enviadas
where re_fecha_ing < dateadd(m,-12,@w_fecha)
end

dump tran sms_cliente with no_log

Preguntas similares