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 27-11-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Esto es mas o menos facil de resolver.

1. El asunto de las transacciones en cliente o en servidor es de poca monta aqui. Solo se afecta fuertemente en el caso de mucha concurrencia.

Aunque los SP sean un poco mas eficientes, en la experiencia no es tanta la diferencia con respecto a los procesos que usualmente hace una app tipo CRUD. Sin embargo, si son procesos en batch si es mejor asi.

Por el manejo de las transacciones como tal, no hay problema desde que se especifique adecuadamente el nivel de aislamiento de transacciones.

2. Sql Server *por defecto* esta diseñado para ser instalado de forma exclusiva en un servidor. O sea, se presupone que la BD esta en 1 servidor, la aplicacion en otro, el domino activo en otro, etc...

Por la configuracion del servidor puedes especificar el limite de memoria de sql server:

http://msdn.microsoft.com/en-us/library/ms178067.aspx

3. Optimiza el windows, cerrando servicios inutiles en un servidor (como el de camaras digitales):

http://www.optimizingpc.com/optimize...sservices.html
http://www.extremetech.com/article2/0,2845,5155,00.asp

4. Puede que la red este mal configurada. Es muy comun, y si ademas tienen el directorio activo en ese equipo es probable que no lo hayan montado correctamente.

Para mas info, este es el mejor sitio:

http://www.windowsnetworking.com/

5. Si tienen Exchange instalado por casualidad, es un animal traga-todo. Mejor muevanlo a otro equipo o salgan de ese engendro del demonio.

6. Ya que tienes la dicha de 2 discos SCSI, si no estan en RAID entonces pon el archivo de la BD en un disco (el de sistema) y del LOG en el otro (el de datos). Es mas importante poner el de Log en el disco que menos se mueva.

Puedes chequear el performance de Sql server con las herramientas de monitoreo que trae, sobre todo el Sql Profiler: Es super bueno. Te logea todas las llamadas al sql y puedes hacer uso del sql query analyzer para chequear cuales sql son los lentos.

Por lo demas, mira si todo lo que debe estar indexado lo esta y recuerdan que tambien se pueden indexar las Vistas, eso ayuda mucho SI tienes informes por vistas que son muy pesados.

Pero con todo, optimizar el sistema, deshabilitar servicios, que no corran menssenger ni ñoñadas y poner la BD y el LOG en discos separados es mas que suficiente.

Ya en el lado de delphi:

1. Utiliza cursores del lado CLIENTE y tipo READONLY. Mira si puedes usar FORWARD-ONLY en algunos casos.

2. Coje los sql mas complejos y vuelvelos Vistas. Mas simple de programar y hay mas desempeño.

3. Pasar todo a SP no necesariamente sea lo mejor, igual, lo que describes no es PARA NADA una situacion donde el desempeño haya que llevarlo al limite. De hecho, me parece raro que se te esten quejando.

Quizas, el problema estan en las estaciones. Quizas tienen mucho spyware & ñoñadas o son equipos muy lentos?

Si necesitas tirar mas desempeño me avisas. Pero primero, revisa los pasos anteriores y usa el query analyzer y el performance monitor de Windows:

http://www.windowsnetworking.com/art...e_Monitor.html

Para ver donde realmente esta la situa.

P.D: Solucion rapida: 1 Desactiva servicios. 2. BD & Log separados 3. Dataset lado cliente, solo lectura 4. SQL complejos en vistas. 5. Tira todo en batchs tanto como se pueda.
__________________
El malabarista.
Responder Con Cita
  #2  
Antiguo 27-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 mamcx Ver Mensaje
Esto es mas o menos facil de resolver.

1. El asunto de las transacciones en cliente o en servidor es de poca monta aqui. Solo se afecta fuertemente en el caso de mucha concurrencia.

Aunque los SP sean un poco mas eficientes, en la experiencia no es tanta la diferencia con respecto a los procesos que usualmente hace una app tipo CRUD. Sin embargo, si son procesos en batch si es mejor asi.

Por el manejo de las transacciones como tal, no hay problema desde que se especifique adecuadamente el nivel de aislamiento de transacciones.

2. Sql Server *por defecto* esta diseñado para ser instalado de forma exclusiva en un servidor. O sea, se presupone que la BD esta en 1 servidor, la aplicacion en otro, el domino activo en otro, etc...

Por la configuracion del servidor puedes especificar el limite de memoria de sql server:

http://msdn.microsoft.com/en-us/library/ms178067.aspx

3. Optimiza el windows, cerrando servicios inutiles en un servidor (como el de camaras digitales):

http://www.optimizingpc.com/optimize...sservices.html
http://www.extremetech.com/article2/0,2845,5155,00.asp

4. Puede que la red este mal configurada. Es muy comun, y si ademas tienen el directorio activo en ese equipo es probable que no lo hayan montado correctamente.

Para mas info, este es el mejor sitio:

http://www.windowsnetworking.com/

5. Si tienen Exchange instalado por casualidad, es un animal traga-todo. Mejor muevanlo a otro equipo o salgan de ese engendro del demonio.

6. Ya que tienes la dicha de 2 discos SCSI, si no estan en RAID entonces pon el archivo de la BD en un disco (el de sistema) y del LOG en el otro (el de datos). Es mas importante poner el de Log en el disco que menos se mueva.

Puedes chequear el performance de Sql server con las herramientas de monitoreo que trae, sobre todo el Sql Profiler: Es super bueno. Te logea todas las llamadas al sql y puedes hacer uso del sql query analyzer para chequear cuales sql son los lentos.

Por lo demas, mira si todo lo que debe estar indexado lo esta y recuerdan que tambien se pueden indexar las Vistas, eso ayuda mucho SI tienes informes por vistas que son muy pesados.

Pero con todo, optimizar el sistema, deshabilitar servicios, que no corran menssenger ni ñoñadas y poner la BD y el LOG en discos separados es mas que suficiente.

Ya en el lado de delphi:

1. Utiliza cursores del lado CLIENTE y tipo READONLY. Mira si puedes usar FORWARD-ONLY en algunos casos.

2. Coje los sql mas complejos y vuelvelos Vistas. Mas simple de programar y hay mas desempeño.

3. Pasar todo a SP no necesariamente sea lo mejor, igual, lo que describes no es PARA NADA una situacion donde el desempeño haya que llevarlo al limite. De hecho, me parece raro que se te esten quejando.

Quizas, el problema estan en las estaciones. Quizas tienen mucho spyware & ñoñadas o son equipos muy lentos?

Si necesitas tirar mas desempeño me avisas. Pero primero, revisa los pasos anteriores y usa el query analyzer y el performance monitor de Windows:

http://www.windowsnetworking.com/art...e_Monitor.html

Para ver donde realmente esta la situa.

P.D: Solucion rapida: 1 Desactiva servicios. 2. BD & Log separados 3. Dataset lado cliente, solo lectura 4. SQL complejos en vistas. 5. Tira todo en batchs tanto como se pueda.
Gracias compañero , Voy aprobar cada uno de estos pasos, como lo detallas aqui , tengo bastante que hacer ... , pues luego les aviso como me fue.
__________________
all your base are belong to us
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 06:54:02.


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