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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Asier
24/05/2004 - 09:07 | Informe spam
Hola Maxi,

¿Y que pasará cuando llegué Sql Server al máximo?
Saludos,

Asier


"Maxi" escribió en el mensaje
news:
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
>
>



Respuesta Responder a este mensaje
#3 Maxi
24/05/2004 - 14:19 | Informe spam
Hola, si lo tienes bien configurado no pasara nada!! el tema es que no le
dejes a Sql que tome el 100% de tu RAM sino el resto de las cosas andara muy
mal de verdad.

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



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

¿Y que pasará cuando llegué Sql Server al máximo?
Saludos,

Asier


"Maxi" escribió en el mensaje
news:
> 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
> >
> >
>
>
>








Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.688 / Virus Database: 449 - Release Date: 22/05/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida