Performance en sp | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Performance en sp

Hola amigos del forum.
Mi problema es el siguiente. Tengo un sp el cual al ejecutarse a veces tarda 3 min, otras 2:30seg y algunas otras 1:50seg.
¿Qué es lo que pasa, porqué hay tanta variación en el tiempo de ejecución?. ´
Como es un ambiente de desarrollo, solo estoy yo conectado en la BD, kuego entonces el tiempo de ejecución no puede verse afectado por algún otro usuario que estuviese realizando algún proceso. De cualquier manera quiero saber si hay alguna forma de mejorar el performance de las consultas en la BD haciendo un Tunning o algún proceso de mantenimiento a la Base de Datos (limpiar los log de transacciones o álgo así). Gracias por su valiosa ayuda. Enrique Madrigal
Suponiendo que la diferencia entre 3 minutos y 1,5 segundos no se deba a momentos de alta utilización del SQL o de locks, la sugerencia sería reindexar todas las tablas que esten involucradas en la sp. Esto es razonable realizarlo 1 o 2 veces por semana.
También, todos los días, sería importante actualizar las estadísticas de las mismas tablas.
Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
Luis, Muchas gracias. Sólo que soy novato en esto de SQL Server. Por lo que necesito un poco más de información.
¿Cómo reindexo las tablas?.
Si esto es conveniente hacerlo 1 o 2 veces por semana. ¿Puedo hacer que éste proceso se ejecute solo como un proceso agendado cada determinado tiempo?
¿Cómo actualizo las estadísticas de las tablas?
Gracias nuevamente por tu ayuda.
Enrique Madrigal
Enrique: El siguiente es un artículo que explica lo que necesitas.
Por favor si tienes alguna duda, consúltame y con mucho gusto te daré los detalles. http://www.sql-server-performance.com/lm_index_reorg.asp Saludos,
Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
Sql Server guarda los datos en un buffer de memoria despues de una consulta, si ejecutas un procedimiento varias veces los tiempos se verán afectados dependiendo de si existen o no los datos en el buffer.
Te recomiendo, si estás solo en el ambiente de desarrollo, limpiar el baffer antes de medir el tiempo para no estar influenciado por el cache. Utiliza:
DBCC DROPCLEANBUFFERS para limpiar el buffer antes de ejecutar el procedure.
]]>