none
OPTIMIZAR BASE DE DATOS - DB LENTA RRS feed

  • Pregunta

  • Hola a todos, tengo un servidor windows 2012 r2 con sql 2014, mi problema es el siguiente, tengo 30 bases de datos con la misma extructura, pero con datos diferentes, equivalen a los 30 clientes que tengo en mo aplicativo, pero una de estas db, esta muy lenta, por ejemplo corro un procedimiento almacenado en todas las db y demora el procedimiento maximo 3ms, pero en esta db dura 10 minutos, el tama;o y la informacion de todas las db es similar, pero no se que esta sacrificando tanto el rendimiento de esta db, alguien que alla tenido el mismo problema o que tenga nociones decomo encontrar que esta fallando, o me podrian indicar que tengo que analisar, etc, porfa necesito ayuda..


    jueves, 14 de septiembre de 2017 22:57

Respuestas

  • Puede que en la base de datos que va lenta no esten bien acualizadas las estadisticas, y que por eso el optimizador de consultas este generando planes de ejecucion equivocados. Fijate en alguna sentencia que vaya lenta en esa base de datos y rapida en otras, y desde SSMS pidele el plan de ejecucion en ambas bases de datos. Observa a ver que diferencias se aprecian. Si en las bases rapidas el plan indica que se estan usando los indices, y en la base lenta no se estan usando, eso indicaria que las estadisticas estan desactualizadas, o bien el plan de ejecucion cacheado para el procedimiento se ha quedado anticuado. Si el problema fuera uno de estos, puedes actualizar las estadisticas con UPDATE STATISTICS, y puedes actualizar los planes cacheados con sp_recompile.
    viernes, 15 de septiembre de 2017 10:51

Todas las respuestas

  • Habría que ver el código de almacenado, si dices que tiene datos parecídos pues solo cabe pensar que en alguna parte hay una diferencia en cuanto a la carga de datos

    Saludos

    viernes, 15 de septiembre de 2017 2:01
  • Puede que en la base de datos que va lenta no esten bien acualizadas las estadisticas, y que por eso el optimizador de consultas este generando planes de ejecucion equivocados. Fijate en alguna sentencia que vaya lenta en esa base de datos y rapida en otras, y desde SSMS pidele el plan de ejecucion en ambas bases de datos. Observa a ver que diferencias se aprecian. Si en las bases rapidas el plan indica que se estan usando los indices, y en la base lenta no se estan usando, eso indicaria que las estadisticas estan desactualizadas, o bien el plan de ejecucion cacheado para el procedimiento se ha quedado anticuado. Si el problema fuera uno de estos, puedes actualizar las estadisticas con UPDATE STATISTICS, y puedes actualizar los planes cacheados con sp_recompile.
    viernes, 15 de septiembre de 2017 10:51