SQL Server - tiempos de ejecucion de consulta

   
Vista:

tiempos de ejecucion de consulta

Publicado por aurim (3 intervenciones) el 28/09/2008 14:53:38
Hola a todos,

Tengo una aplicación cliente/servidor desarrollada en Visual Basic .net. Inicialmente, la aplicación hacía uso de Bases de Datos en un servidor que tenía instalado sql server 2000.

Hace unos meses, las Bases de datos se migraron a sql server 2005 y no hubo ningún problema. Sin embargo, hemos descubierto que, la ejecución de las sentencias de la aplicación varía según el momento. Tan pronto tarda en ejecutarse 1 segundo como tarda 1 minuto y medio o más.
No sabemos a qué se debe este hecho, no sabemos si es un problema del sql server y la concurrencia de usuarios ya que a menudo se han producido las siguientes situaciones:

1.- las sentencias se ejecutan en tiempo mínimo y el número de usuarios es mínimo.
2.- las sentencias no consiguen ejecutarse debido a que hay muchos usuarios.
3.- las sentencias consiguen ejecutarse a pesar del número elevado de usuarios.
4.- un único usuario no consigue ejecutar ninguna sentencia a pesar de ser el único en el sistema.

Manejamos en la aplicación 3 Bases de Datos distintas: una desarrollada por nosotros y 2 pertenecientes a Navision y Meta 4 respectivamente.

¿Es posible que la Base de Datos desarrollada por nosotros en sql server 2000 necesite algún ajuste para funcionar en sql server 2005? Me refiero a algo relativo con el uso de sus tablas por parte de muchos usuarios... da la sensación de que se quedan "bloqueadas" cuando las usan varios usuarios.

¿Es posible que se necesite algún ajuste en el servidor de sql server relativo al número de usuarios?

A veces nos da la sensación de que el server no está gestionando correctamente las conexiones de los usuarios y no las libera cuando debe...

Muchas gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:tiempos de ejecucion de consulta

Publicado por jose camilo (21 intervenciones) el 29/09/2008 15:51:08
revisa :
1.- sistema operativo del servidor
2.- conectores de red (cambia el swicht y el cable de red k va desde el servidor al swicht)
3.- sistema enerjetico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tiempos de ejecucion de consulta

Publicado por Isaias (3308 intervenciones) el 29/09/2008 17:06:18
Yo pregunto, ¿Como fue que migraste tu base de 2000 a 2005?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tiempos de ejecucion de consulta

Publicado por aurim (3 intervenciones) el 30/09/2008 10:39:44
En realidad la migración no fue cosa nuestra, nosotros sólo nos encargamos del mantenimiento de las aplicaciones. Sin embargo, la razón principal de la migración fue por cuestiones técnicas.

Por una parte, el servidor donde se hallaba instalado el sql server 2000 estaba saturado, no era capaz de dar servicio a todos los usuarios, por lo que era necesario cambiar de máquina y junto con ella, se optó por escalar a sql server 2005 ya que la gestión de memoria del sql server 2000 no era la adecuada:

Se habían probado distintas estrategias de optimización de la gestión de memoria, pero ninguna resultaba. Veíamos que a pesar de que se liberaban las conexiones de los usuarios al Sql server, la memoria utilizada seguía siendo la misma y sólo se liberaba cuando se reiniciaba por completo la máquina, cosa que en los últimos tiempos se estaba haciendo algo frecuente, con las molestias que eso ocasionaba.

Se optó por server 2005 por ser la más similar a server 2000 y por las mejoras en gestión de memoria que contemplaba.

En concreto, nosotros no tenemos demasiados conocimientos de administración del server 2005, pero intuimos que el problema de tiempos con nuestra aplicación puede ir más encaminado a cuestiones tales como uso de una misma tabla de la Base de Datos por parte de varios usuarios, ya que en concreto, hemos comprobado que estos altos tiempos sólo se producen en épocas del mes en los que más uso se hace de las tablas involucradas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tiempos de ejecucion de consulta

Publicado por Isaias (3308 intervenciones) el 30/09/2008 16:35:22
Memoria: SQL Server es un gran consumidor de memoria y SIEMPRE tomara la total de la que exista, a menos claro, que se le limite, cosa que no es recomendable, es por eso que Microsoft, recomienda que el motor de base de datos se instale en un servidor Stand Alone, exclusivo para este fin.

Migracion: Existe toda una metodologia de migracion de 2000 a 2005 (http://www.sqlservercentral.com/articles/Administration/2987/), quedan muchas dudas (todas) de como migraron y si por lo menos se aplico UPGRADE ADVISOR, para saber si se podia hacer una migracion en caliente o deberian hacerse adecuaciones, ¿Por lo menos se actualizaron estadisticos (sp_updatestats)?, ¿Se re-generaron indices?, ¿Se creo un PLAN DE MANTENIMIENTO?, ¿Se aplico el Service Pack 2.0?.

Lentitud: Puede deberse a muchas cosas, principalmente, por errores en diseño de los mismos querys o bien, por falta de indices (o falta de mantenimiento de estos), tambien pude suceder que esten existiendo DEAD_LOCK en tu base y no se han percatado de este asunto.

Esos son mis comentarios, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tiempos de ejecucion de consulta

Publicado por aurim (3 intervenciones) el 01/10/2008 10:46:24
Respecto a cómo se realizó la migración, no tenemos una idea muy profunda. Ya expliqué anteriormente que a nosotros sólo nos encargaron la tarea de adaptar las aplicaciones al nuevo servidor y sql server. La tarea de instalación del nuevo servidor (máquina), el sql server, su configuración y la migración de las distintas Bases de Datos fue realizada por personas ajenas a nosotros por lo que no disponemos de información acerca de los conocimientos y experiencia que ellos tengan.

Yo por mi cuenta, hice una reconstrucción de los índices, una vez que ví que existía un problema y con vistas a eliminar la posibilidad de que los "índices" fuesen los causantes.

Sé que cuando se determinó que los indices no eran la causa, se optó por hacer una actualizacion de las estadísticas y otro tipo de pruebas, pero esto ya no fue cosa nuestra. Respecto al service Pack instalado o si se ha hecho Plan de Mantenimiento posteriormente, eso no lo sé.

Por mi parte, modifiqué y optimicé las consultas de la aplicación, medí tiempos y comprobé que según el día y el "grado de uso" de las tablas involucradas, el tiempo variaba, en concreto pasaban de 1 segundo a 1 minuto y medio. Supuse que ocurría algún tipo de "Bloqueo" pero como ya digo, nuestros conocimientos de Sql server son básicos, por lo que estamos de alguna manera perdidos.

De todas maneras, procuraré echar un vistazo a todos los puntos que hasta ahora habeis comentado, informándome acerca de cada uno e intentando ver si alguno es el causante de nuestro problema.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tiempos de ejecucion de consulta

Publicado por Isaias (3308 intervenciones) el 01/10/2008 17:37:41
De nada, por aqui andaremos para intercambiar ideas y experiencias, suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar