SQL Server - Lentitud o bloqueos cada hora

 
Vista:

Lentitud o bloqueos cada hora

Publicado por Jose M (65 intervenciones) el 17/05/2010 11:31:46
En un sql server 2008 x64 puesto en marcha hace poco, resulta que aproximadamente cada hora la gente nota una lentitud notable en sus programas durante 2 o 3 minutos.

Como trabajos programados, tengo los que yo puse, que no se relacionan en esos tiempos y syspolicy_purge_history, que venía por defecto con el sql server, y se ejecuta de madrugada.

Intento utilizar el profiler para que muestre grafica de bloqueo, o bien ejecuto sp_lock o sp_lock2 en los momentos de lentitud, pero no logro ver nada en claro para saber cual es la causa.

Es posible que Sql server 2008 tenga procesos que se ejecuten cada x tiempo y no vengan visibles en las tareas programadas??

Ya aprovecho a preguntar como es que en esta versión no exista, o no vea un registro de los procesos que se van ejecutando al momento, solo veo un monitor de trabajo para las tareas programadas.

Tampoco veo la zona en la que te dice que spid está bloqueado, en el sql server 2000 venía.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Lentitud o bloqueos cada hora

Publicado por Isaias (4558 intervenciones) el 18/05/2010 17:51:33
Sin duda que 2008 trae eso y mucho mas, solo hay que saber utilizarlo.

http://technet.microsoft.com/es-es/library/ms178104.aspx
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:Lentitud o bloqueos cada hora

Publicado por Jose M (65 intervenciones) el 19/05/2010 11:53:33
Gracias por la información, pero mirándola de momento no me soluciona directamente la duda que tengo.

Antes en la version 2000 podias ver en la parte grafica todos los procesos, y si alguno estaba bloqueado tenia junto al spid - lock.

En la version 2008 no viene esa parte grafica, al menos de forma predifinida, por lo que estas obligado a usar el profiler, utilizar la plantilla de bloqueos, y acertar con la configuracion exacta que te interese para capturar esos bloqueos.

No obstante ese enlace que has puesto explica muy bien el tema de modo solicitud, modo propietario, etc,... cosas que vienen muy bien saberlas para saber interpretar los resultados.

Tampoco alcanzo a entender las marcas de traza 1204 y 1222. No se como conseguirlas o utilizarlas.
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:Lentitud o bloqueos cada hora

Publicado por Jose M (65 intervenciones) el 19/05/2010 12:55:21
Perdon, algunas preguntas, como las marcas de traza ya las entiendo, las he activado y ahora ya veo en los registros los bloqueos que se producen y con qué spid. Según el seguimiento volverá a producirse dentro de unos minutos y ya he dejado preparado todo para tratar de averiguar desde equipo se produce. En cuanto lo solucione confirmaré.

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:Lentitud o bloqueos cada hora

Publicado por Jose M (65 intervenciones) el 19/05/2010 17:32:05
En las "consultas costosas recientes" del monitor de actividad aparece:

select * from OpenRowset(TrcData, @traceid, @records)

Con una duración promedio(ms) de 2255056

Intento coger esa consulta con el profiler pero no la detecta. De qué puede ser??
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Lentitud o bloqueos cada hora

Publicado por Isaias (4558 intervenciones) el 19/05/2010 18:26:41
Si obtienes el spid, despliegalo con sp_who (spid)
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:Lentitud o bloqueos cada hora

Publicado por Jose M (65 intervenciones) el 21/05/2010 09:38:22
Tras obtener varios bloqueos a través del profiles, lock gráfico, mandé las consultas implicadas al desarrollador del programa y me dijo que las pasara por la herramienta de rendimiento de sql server.

Pasé un par de ellas en las que el sistema me aconsejaba generar algunas estadísticas e índices para mejorar el rendimiento (aún no entiendo muy bien ese tema para saber si venía bien o mal).

El caso es que apliqué las sugerencias que daba sql server.

Al de pocos minutos las aplicaciones iban muy muy mal, todo parado.
Reinicié servicios sql, nada. Después reinicié el servidor, nada. Finalmente eliminé los indices y estadisticas que se generaron con la mejora de rendimiento. Y a partir de ahi parece que todo se ha solucionado.

No se si ha sido por reiniciar el servidor, por aplicar los indices y estadisticas y eliminarlo,.... pero está solucionado.

Una vez más, gracias Isaías.

P.D.- el spid de aquella consulta no lo pude conseguir, ni ha vuelto a aparecer.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Lentitud o bloqueos cada hora

Publicado por Isaias (4558 intervenciones) el 21/05/2010 20:21:45
Bueno, recordemos que los INDICES en conjunto con los ESTADISTICOS, son 2 herramientas con las que cuenta SQL SERVER, para poder elaborar un buen plan de ejecucion de sus querys.

Si estos, se eliminan, sin duda, las busquedas seran mucho mas lentas.
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:Lentitud o bloqueos cada hora

Publicado por Jose M. (65 intervenciones) el 24/05/2010 09:03:57
Si, no entiendo muy bien cómo funciona eso, pero lo curioso es que sucedió al reves.

Hice los indices y estadisticas recomendados por el programa, se generaron, y al de pocos minutos iba todo muy muy mal. Esos indices y estadisticas eran los propuestos por sql server para mejorar el rendimiento de 2 consultas concretas.

Tras ir todo mal deshice la creacion de esos indices y estadisticas, los elimine. Y todo empezo a ir bien.

Es por eso que no entiendo por que todo iba tan mal justo despues de crearlos, deberia ir todo igual o mejor, no??

Y ya despues al eliminarlos, va bien. Cuando en teoria deberia ir igual o peor.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Lentitud o bloqueos cada hora

Publicado por Isaias (4558 intervenciones) el 27/05/2010 02:40:28
Comunmente las columnas despues del WHERE en tu query, son candidatas para ocupar una posicion en tus indices, ¿es asi?
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:Lentitud o bloqueos cada hora

Publicado por Jose M (65 intervenciones) el 27/05/2010 16:35:39
Así es, es como comentas. Normalmente después de WHERE suelen ocupar la posición de los índices.

Entiendo que si capturo una consulta en la que no se cumpla esto, convenga hacer una mejora de rendimiento de esa consulta para que Sql genere esos índices necesarios en la tabla.
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