Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ultimamente las consultas tandan mucho mas que antes

Estas en el tema de Ultimamente las consultas tandan mucho mas que antes en el foro de SQL Server en Foros del Web. Bueno, tal como el título indica, ese es mi pregunta, ¿que puede ser? Consultas que hace un mes tardaban nada, o a lo más un ...
  #1 (permalink)  
Antiguo 19/12/2007, 15:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Ultimamente las consultas tandan mucho mas que antes

Bueno, tal como el título indica, ese es mi pregunta, ¿que puede ser?

Consultas que hace un mes tardaban nada, o a lo más un par de segundos, ahora tardan más del minuto, la BD's no ha crecido fuera no de normal como para atacharlo a eso.
Ya optimicé algunas consultas eliminando el IN por el EXISTS y no ha habido mejora notoria. No estoy muy seguro por donde es el problema y por lo mismo no se que más hacer fuera de optimizar los queries, aunque estoy evaluando el reestructurar algunas tablas para respaldar los registros antigûos, aunque eso me hará tener que modificar las vistas que hagan referencias históricas.

¿pudieran recomendarme algo que pueda revisar en el server para saber la causa?, la verdad no soy mucho experimentado en cuestiones de administración, ya que soy un usuario empírico.

Gracias de antemano.

PD. Uso sql server 2005.
  #2 (permalink)  
Antiguo 20/12/2007, 12:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Ultimamente las consultas tandan mucho mas que antes

El tardado de las consultas puede deberse a diferentes factores, por ejemplo. ¿Tienes un plan de mantenimiento a tu base?, ¿Reduces el Log con un plan de respaldos?, ¿Manejas indices en tus tablas?
  #3 (permalink)  
Antiguo 20/12/2007, 19:14
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Re: Ultimamente las consultas tandan mucho mas que antes

Hola. Como iislas lo indica muchos factores intervienen. Sin embargo, si pegas aquí el código de una consulta en particular, y el plan de ejecución de la misma, probablemente pueda sugerirte algo.

Hasta Luego.
  #4 (permalink)  
Antiguo 21/12/2007, 08:24
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: Ultimamente las consultas tandan mucho mas que antes

Las consultas están optimizadas, que apenas el mes pasado no se tardaba más de un par de segundos y se fueron a más del minuto, optimizando se han colocado en 20 segundos en promedio, lo cuál sigue siendo alto. He mejorado el código también y he logrado un rendimiento aceptable de la aplicación, pero hay otras consultas que siguen siendo extraordinariamente tardadas, agradezco tu intensión Beakdan, de verdad, pero no quisiera molestarte con menesteres que están en mis manos (optimizar consultas), más bien quisiera me pudieras orientar con "tips" o sugerencias sobre lo que puedo revisarle al servidor para saber qué es lo que puede estar causando dicho comportamiento, ya que de los queries, triggers y SP, ya me estoy encargando.

Entonces puedo comentarte lo siguiente, anteriormente la BD's se respaldaba de forma incremental 3 veces al día con jobs en el mismo SQL Server, ahora se respalda con un SW llamado acronis, y aunque no le veo mucha relación, pudiera ser que este SW haga o deje de hacer algo que promueva el aumento del log, eso no lo se. Sobre lo de los índices , pues si, si los manejo. Ahora eso de que si tengo un plan de mantenimiento, quisiera fueras más específico iislas, si no te incomoda demasiado.

Saludos
  #5 (permalink)  
Antiguo 21/12/2007, 13:44
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Re: Ultimamente las consultas tandan mucho mas que antes

Bueno, casi siempre que me solicitan optimizar el tiempo de respuesta de consultas, existen índices en las tablas, pero casi nunca son los más adecuados.
Dependiendo de los dispositivos disponibles en tu servidor, hay muchas cosas que se pueden hacer.
Por ejemplo, si tus consultas utilizan constantemente tablas temporales, es muy conveniente tener tempdb en una unidad de almacenamiento aparte. A veces no las usas explicitamente, pero operacionaes tales como Eager Spool, Lazy Spool, Table Spool, ímplicitamente usan esta base. Al separarla evitarás problemas de contención.
Supongo que no debo mencionar siquiera la necesidad de guardar el log de transacciones en una unidad independiente para evitar también problemas de contención.
También puedes obtener mejor rendimiento guardando la base de datos en multiples Filegroups (y probablemente distribuyendo dichos filegroups en multiples unidades) de tal manera que separes indices y datos en distintos filegroups. De esa manera puede aprovechar mucho mejor el paralelismo de tu server, y reduces la competencia por los recursos.
En caso de bases verdaderamente masivas, analiza la posibilidad de particionar tu base de datos.

Normalmente los usuarios perciben como lentas las cosultas que entregan sumarizados. Resulta evidente que con el paso del tiempo estás parecerán más y más lentas al incrementarse la cantidad de registro a procesar antes de entregar el resultado. Es un problema común en DataMarts y DataWarehouses. Sin embargo, aún procesando cientos de miles de registros, el tiempo respuesta no debe exceder de algunos segundos. Cuando ni esos segundos son aceptables, puedes recurrir a vistas indexadas por ejemplo.

Aún cuando hay muchas cosas que se pueden hacer a nivel server, yo creo que las mayores ganancia se obtienen estructurando correctamente las consultas. Separa la parte relacional en tus consultas de la parte de la presentación. El hecho de que existan indices, no significa que tus consultas los estén aprovechando, y tampoco significa que sean correctos. Muchas veces encuentro que eliminar un índice mejora el rendimiento de consultas problemáticas, y al mismo tiempo, reduce el coste de mantenimiento del motor de SQL.

Por lo anterior es que me gustaría ver tu consulta y plan de ejecución.
  #6 (permalink)  
Antiguo 21/12/2007, 15:28
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Ultimamente las consultas tandan mucho mas que antes

Myakire

Consulte esta liga, sobre PLANES DE MANTENIMIENTO

http://technet.microsoft.com/es-es/l.../ms189953.aspx
  #7 (permalink)  
Antiguo 02/01/2008, 12:52
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Ultimamente las consultas tandan mucho mas que antes

El problema se llama "Alcoholes Decembrinos y Mykire"

¿Degragmentas tus índices?
¿El rendimiento general del sistema cayó o solo es algo focalizado en una o dos tablas (o una o dos consultas)?
¿Revisaste el Performance Monitor del servidor, dentro de Windows, no de SQL Server? Para descartar problemas de cuellos de botella en RAM y procesador.
¿Reiniciaste el servidor? Da risa a estas alturas, pero los míos procuro hacerlo 1 vez por semana por aquello de los parches de Windows y la propia sanidad mental de Windows.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #8 (permalink)  
Antiguo 02/01/2008, 17:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: Ultimamente las consultas tandan mucho mas que antes

jejeje pues si mi estimado Mith, eso estaría bien que hubiera sido pero lamentablemente y aunque usted no lo crea, solo bebí a lo más un cartón de cervezas en todo Diciembre, ahora que quizá es eso, se me ha bajado el nivel de alcohol en la sangre.

Bueno, respondiéndote:

¿Degragmentas tus índices?

eeehh, no, la verdad es que no había siquiera encontrado el concepto en mi libro que me compré para este menester, pero buscandolo me he encontrado un sitio muy bueno del que creo voy a sacar bastante provecho: http://www.sql-server-performance.com/ thank's

¿El rendimiento general del sistema cayó o solo es algo focalizado en una o dos tablas (o una o dos consultas)?

Mira que el problema lo tenía en un SP que hace un SELECT UNION, optimizando lo he dejado bastante aceptable (cosa de 3 o 4 segundos cuando se tardaba más del minuto), ahora cierto es que hay un par de vistas que se han salido de lo tolerable, aunque las tablas a las que hacen relaciones (y uniones) son de cientos de miles de regristros, a esas no me ha tocado meterles mano aún, pero de que no me escaparé en los próximos días es un hecho

¿Revisaste el Performance Monitor del servidor, dentro de Windows, no de SQL Server?
Bueno, no he tenido permiso para meterme al Windows, aunque la persona que si lo tiene me dice que todo esta "normal".

¿Reiniciaste el servidor?
Bueno, quizá no cada semana pero si por lo menos un par al mes

Tengo mucho que investigar y aprender, los conceptos que Beakdan mencionó al igual que en tu caso, me han hecho que llegue a sitios interesantes de los que en cuanto tenga un poco de tiempo para asignarle al esto los pondré en práctica. El plan de mantenimiento desde que iislas dejó la liga, lo he agregado, pero no he notado diferencia (agregué todo salvo las copias y el agente)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:16.