Diferencias tiempo de ejecución script
Publicado por giko (1 intervención) el 08/10/2008 08:58:00
Buenas a todos
A ver si laguien puede echarme un cable con esto.
Tengo el siguiente script para ejecutar en un servidor de producción:
declare @productoco integer
declare cursorproductsCO cursor for
select productid from products
where clientid in
(select clientid from clients where sin in (select sin collate Traditional_Spanish_CI_AS_WS from tempdb..tabla))
and campo<> 1
open cursorproductsco
fetch cursorproductsco into @productoco
while (@@fetch_status = 0)
begin
update products set campo=1 where productid=@productoco
fetch cursorproductsco into @productoco
end
close cursorproductsco
deallocate cursorproductsco
Lógicamente, antes de ejecutarlo en producción lo he probado en un servidor de test, que es una máquina con hardware mucho menor que la de producción.
Ambos servidores son Microsoft SQL Server 2005, y tienen la misma configuración. El caso es que en el servidor de test, la ejecución tarda 45 minutos para actualizar 5000 filas, y en el servidor de producción, depués de ejecutarlo por tres veces (la primera lo paré a las 6 horas, la segunda a las 2 horas, y la tercera a las 4 horas), aún quedan por actualizar casi 2000 filas.
Lo he ejecutado con el Management Studio, con usuarios conectados (la primera vez); también sin usuarios conectados (la segunda vez) y, por último, mediante un trabajo programado durante la noche (la tercera vez).
¿A alguien se le ocurre alguna razón por la que el servidor se pueda estar comportando así?
Muchas gracias por adelantado.
Un saludo
A ver si laguien puede echarme un cable con esto.
Tengo el siguiente script para ejecutar en un servidor de producción:
declare @productoco integer
declare cursorproductsCO cursor for
select productid from products
where clientid in
(select clientid from clients where sin in (select sin collate Traditional_Spanish_CI_AS_WS from tempdb..tabla))
and campo<> 1
open cursorproductsco
fetch cursorproductsco into @productoco
while (@@fetch_status = 0)
begin
update products set campo=1 where productid=@productoco
fetch cursorproductsco into @productoco
end
close cursorproductsco
deallocate cursorproductsco
Lógicamente, antes de ejecutarlo en producción lo he probado en un servidor de test, que es una máquina con hardware mucho menor que la de producción.
Ambos servidores son Microsoft SQL Server 2005, y tienen la misma configuración. El caso es que en el servidor de test, la ejecución tarda 45 minutos para actualizar 5000 filas, y en el servidor de producción, depués de ejecutarlo por tres veces (la primera lo paré a las 6 horas, la segunda a las 2 horas, y la tercera a las 4 horas), aún quedan por actualizar casi 2000 filas.
Lo he ejecutado con el Management Studio, con usuarios conectados (la primera vez); también sin usuarios conectados (la segunda vez) y, por último, mediante un trabajo programado durante la noche (la tercera vez).
¿A alguien se le ocurre alguna razón por la que el servidor se pueda estar comportando así?
Muchas gracias por adelantado.
Un saludo
Valora esta pregunta


0