Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-11-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
SQL Server lento.

Hola Compañeros del foro , Tengo la siguiente inquietud;
Veran Tengo un Servidor con las Siguientes Caracteristicas:
*Hewlett Packard ML 150 G2
*Procesador Dual Core Xeon 3.2 Ghz
*Memoria Ram 2 GB
*Dos HDD de 36.4 GB SCSI

SO Windos Server 2003, SQL server 2000 Service Pack 4,tengo 5 Maquinas
de Facturacion , de las cuales solo 3 trabajan arduamente porque en los otros
departamentos no hay mucho movimiento, y tambien tengo otras 3 pcs que solo las utilizan para hacer, movimientos al inventario , consultas y demas.
ya ha pasado hace un mes aproximadamente desde la implemetacion del
sistema y se me an presentado varios problemas de lentitud , es decir , ultimamete se el proceso se ha vuelto lento, pareciera que el servidor se
quedara sin memoria ya que cuando reinicio el servidor todo vuelve a la normalidad, lo extraño tambien es que no todos los dia pasa,pero ya me empiezo a preocupar, no se si sea por las caracteristicas del servidor, si necesita mas ram o estoy manejando mal las transacciones en el sistema.
espero sus consejos...
__________________
all your base are belong to us
Responder Con Cita
  #2  
Antiguo 25-11-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Yo trataría de ver cómo utilizas las transacciones...
- Si abres una al principio y la cierras al cerrar el programa: MAL ASUNTO!
- Mira la cantidad de transacciones abiertas en el SQL Server
- Trata de usar transacciones Read Only para las cosas que solo necesiten leer (listados por ejemplo)
Responder Con Cita
  #3  
Antiguo 25-11-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por duilioisola Ver Mensaje
Yo trataría de ver cómo utilizas las transacciones...
- Si abres una al principio y la cierras al cerrar el programa: MAL ASUNTO!
- Mira la cantidad de transacciones abiertas en el SQL Server
- Trata de usar transacciones Read Only para las cosas que solo necesiten leer (listados por ejemplo)
esta es la manera como trabajo con las transacciones en un proceso comun
de guardar :

Código Delphi [-]
             if not (form13.Database1.InTransaction) then             form13.Database1.StartTransaction;
              try
            
            /// Proceso de Ejeccion de consultas para Postear la Informacion
            
  
  
            form13.Database1.Commit;
            except
            on E: Exception do
            begin
                  form13.database1.rollback;
                  Application.MessageBox( PChar( E.Message ), 'Ocurrio un Error De SQL',
                   MB_ICONSTOP );
                  exit;
            end;

            END;
__________________
all your base are belong to us
Responder Con Cita
  #4  
Antiguo 25-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A parte de lo dicho, yo echo en falta memoria para ese servidor (W2003 Server + SQL Server ==> 2 GB poco ).

Al precio que va hoy en día la RAM yo aumentaría esa cantidad.

Revisa tráfico de red y tiempos de respuesta, no sea que venga por ahí y no por el servidor en sí.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 25-11-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
A parte de lo dicho, yo echo en falta memoria para ese servidor (W2003 Server + SQL Server ==> 2 GB poco ).

Al precio que va hoy en día la RAM yo aumentaría esa cantidad.

Revisa tráfico de red y tiempos de respuesta, no sea que venga por ahí y no por el servidor en sí.
Hola Neftali ,tomare en cuenta lo de la ram , y con respecto a del trafico de red y tiempos de respuesta, mm como lo hago , espero no molestarte con mi novatada pero... estoy aprendiendo
__________________
all your base are belong to us
Responder Con Cita
  #6  
Antiguo 25-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Aunque hay herramientas más sofisticadas, lo básico es comprobar que a medida queva cayendo el rendimiento los tiempos de respuesta del servidor son buenos (similares a cuando está recién arrancado); Los PING's deben ser similares.

En ese momento (de rendimiento bajo) puedes probar otras operaciones donde intervenga la red y comprobar la velocidad y tasa de transferencia.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 25-11-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali Ver Mensaje
A parte de lo dicho, yo echo en falta memoria para ese servidor (W2003 Server + SQL Server ==> 2 GB poco ).

Al precio que va hoy en día la RAM yo aumentaría esa cantidad.

Revisa tráfico de red y tiempos de respuesta, no sea que venga por ahí y no por el servidor en sí.

Aunque me temo que no va a poder aumentar mucho, sólo 1 gb más
Responder Con Cita
  #8  
Antiguo 25-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Aunque me temo que no va a poder aumentar mucho, sólo 1 gb más
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 25-11-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por look Ver Mensaje
esta es la manera como trabajo con las transacciones en un proceso comun
de guardar :


Código Delphi [-]
if not (form13.Database1.InTransaction) then form13.Database1.StartTransaction;
try

/// Proceso de Ejeccion de consultas para Postear la Informacion



form13.Database1.Commit;
except
on E: Exception do
begin
form13.database1.rollback;
Application.MessageBox( PChar( E.Message ), 'Ocurrio un Error De SQL',
MB_ICONSTOP );
exit;
end;

END;





No puedo creerlo :O :O, tienes Sql server 2000, y metes las transacciones en tus clientes :| :|.


El esquema adecuado es el siguiente:


Abre pantalla en el sistema

-- usuario realiza operaciones-
-- Creas tu datamodule y preparas tus Sps
-- Establececes conexión y ejecutas el sp (los bloques transaccionales están en los sps)
-- Cierras conexión
-- Destruyes el datamodule.


con esa estructura optimizas enormemente los recursos de tu servidor y de tus clientes.


Saludos. Ahhh no olvides darle mantenimiento diario a tu base e datos, respaldado y reduciendo el tamañoo del log (dbcc shrinkfile)

Saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #10  
Antiguo 25-11-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por poliburro Ver Mensaje
No puedo creerlo :O :O, tienes Sql server 2000, y metes las transacciones en tus clientes :| :|.


El esquema adecuado es el siguiente:


Abre pantalla en el sistema

-- usuario realiza operaciones-
-- Creas tu datamodule y preparas tus Sps
-- Establececes conexión y ejecutas el sp (los bloques transaccionales están en los sps)
-- Cierras conexión
-- Destruyes el datamodule.


con esa estructura optimizas enormemente los recursos de tu servidor y de tus clientes.


Saludos. Ahhh no olvides darle mantenimiento diario a tu base e datos, respaldado y reduciendo el tamañoo del log (dbcc shrinkfile)

Saludos

Gracias amigo , Agradesco tu ayuda.
mmm, ¿que es un Sps?, si no es mucha la Molestia
__________________
all your base are belong to us
Responder Con Cita
  #11  
Antiguo 26-11-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por look Ver Mensaje
Gracias amigo , Agradesco tu ayuda.
mmm, ¿que es un Sps?, si no es mucha la Molestia

Procedimientos almacenados
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #12  
Antiguo 26-11-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por poliburro Ver Mensaje
No puedo creerlo :O :O, tienes Sql server 2000, y metes las transacciones en tus clientes :| :|.


El esquema adecuado es el siguiente:


Abre pantalla en el sistema

-- usuario realiza operaciones-
-- Creas tu datamodule y preparas tus Sps
-- Establececes conexión y ejecutas el sp (los bloques transaccionales están en los sps)
-- Cierras conexión
-- Destruyes el datamodule.

Amigo poliburro, difiero un poco de esto.

Qué pasa si de tu aplicación cliente llamas a 3 SP, y las transacciones las haces en el servidor. ponte en el caso que el 3 SP falle, ¿qué pasará?, ya que las transacciones de los dos primeros SP estarán materializadas en la base de datos. De esta forma no tienes forma de deshacer los cambios.

Yo manejos las transacciones en los clientes, en distintos lenguajes (Delphi, PowerBuilder, Php y con distintos motores (Oracle, SQL Server, etc..)) y nunca he tenido problemas de lentitud.

Saludos .-
__________________
No todo es como parece ser...
Responder Con Cita
  #13  
Antiguo 26-11-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por lucasarts_18 Ver Mensaje
Amigo poliburro, difiero un poco de esto.

Qué pasa si de tu aplicación cliente llamas a 3 SP, y las transacciones las haces en el servidor. ponte en el caso que el 3 SP falle, ¿qué pasará?, ya que las transacciones de los dos primeros SP estarán materializadas en la base de datos. De esta forma no tienes forma de deshacer los cambios.

Yo manejos las transacciones en los clientes, en distintos lenguajes (Delphi, PowerBuilder, Php y con distintos motores (Oracle, SQL Server, etc..)) y nunca he tenido problemas de lentitud.

Saludos .-
la lógica entonces sería meter esos tres sps en un cuarto sp no? jajajaja. Amigo, soluciones hay muchas para esa situación. no aprovechar las características de atomicidad y transaccionalidad de motores como oracle o sql server es como utilizar un trailer para mudar una cama.

Ojo, eso está basado en mi propia experiencia. Igual en tu caso las cosas han funcionado maravillosamente bien, no tengo por que dudarlo pero para mi honestamente no aprovechar las ventajas del motor es un grave pecado.

Ejemplo:

Es como si para generar Xml de un recorset de sql server u oracle usaras delphi recorriendo todo el Dataset. . SQL server y Oracle ofrecen la generación de XML con una velocidad mucho mayor a la de delphi.


saludos.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Windows server 2003 SP2 firebird 1.5 lento hugoaponce Firebird e Interbase 4 05-03-2008 18:59:43
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
SQL Server lento como tortuga sinalocarlos MS SQL Server 2 20-04-2007 03:59:39
ADO lento CHiCoLiTa Conexión con bases de datos 6 28-07-2004 17:59:46
lento carlomagno Firebird e Interbase 4 02-07-2004 13:48:08


La franja horaria es GMT +2. Ahora son las 09:53:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi