Consumo de memoria al hacer insert

23/05/2004 - 13:31 por Asier | Informe spam
Hola grupo,

Estoy haciendo purbeas de rendimiento de SqlServer 2000 ya que tengo que
crear una aplicación con bastante carga de trabajo y me da miedo los tiempos
de respuesta y consumo de recursos. He creado un procedimiento almacenado
que simplemente hace una insert en una tabla de la BBDD de prueba. Pero hace
1000000 de inserciones con un bucle:

CREATE PROCEDURE CargaCaja AS
Declare @i int

set @i=1

WHILE @i <= 1000000
BEGIN
insert into CajaMasivo
(NumCaja,ProgresivoCaja,TipoOperacion,FechaSituacionCaja)
values (@i,1,1,'22/05/2004')
set @i = @i + 1
END
GO

Todo funciona bien e incluso he probado ha hacer select de registros por los
campos de índices y los tiempos de respuestas son buenos. Lo que me
preocupa y mucho es que al terminar de ejecutar ese procedmiento almacenado
el consumo de memoria se ha elevado mucho y no se libera, dejando al equipo
un poco colgado. ¿Lo normal sería que al terminar el proceso se liberasen
todos los recursos que estaban siendo usados, no?, Claro, reiniciando el
equipo ya todo queda bien.

Seguro que me podeis ayudar, tiene que existir alguna foma de poder liberar
esa memoria sin tener que reiniciar el equipo.
Muchas gracias y slaudos,

Asier
 

Leer las respuestas

#1 Maxi
23/05/2004 - 16:58 | Informe spam
Hola, te comento!! si has configurado Sql Server para que tome toda la
memoria (cosa que ni te recomiendo) pasa lo que vos decis :(

EL motor empieza aa tomar recursos y luego en algun momento los libera, ese
momento te diria por practica que se da muy pocas veces!! por lo cual lo que
deberias hacer es configurar la memoria del Sql con un tope Maximo!! ejemplo

Si tenes 1GB de RAM yo a tu SQL no le daria las de 856 como maximo y el
resto queda para tu SO!!!

La configuracion de la memoria RAM lo haces desde el Administrador
Coorporativo desde las propiedades del Servidor.

Bye



Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Asier" escribió en el mensaje
news:
Hola grupo,

Estoy haciendo purbeas de rendimiento de SqlServer 2000 ya que tengo que
crear una aplicación con bastante carga de trabajo y me da miedo los


tiempos
de respuesta y consumo de recursos. He creado un procedimiento almacenado
que simplemente hace una insert en una tabla de la BBDD de prueba. Pero


hace
1000000 de inserciones con un bucle:

CREATE PROCEDURE CargaCaja AS
Declare @i int

set @i=1

WHILE @i <= 1000000
BEGIN
insert into CajaMasivo
(NumCaja,ProgresivoCaja,TipoOperacion,FechaSituacionCaja)
values (@i,1,1,'22/05/2004')
set @i = @i + 1
END
GO

Todo funciona bien e incluso he probado ha hacer select de registros por


los
campos de índices y los tiempos de respuestas son buenos. Lo que me
preocupa y mucho es que al terminar de ejecutar ese procedmiento


almacenado
el consumo de memoria se ha elevado mucho y no se libera, dejando al


equipo
un poco colgado. ¿Lo normal sería que al terminar el proceso se liberasen
todos los recursos que estaban siendo usados, no?, Claro, reiniciando el
equipo ya todo queda bien.

Seguro que me podeis ayudar, tiene que existir alguna foma de poder


liberar
esa memoria sin tener que reiniciar el equipo.
Muchas gracias y slaudos,

Asier


Preguntas similares