¿Se están actualizando las estadísticas de tus índices?

Hoy he vivido la curiosa situación de que una consulta estaba tardando muchísimo tiempo en ejecutarse debido a que, por error u omisión, se habia desactivado la opción de actualizar automáticamente las estadísticas de un índice. Lo habitual es dejar esta opción activada, aunque a veces puede tener sentido actualizar las estadísticas ‘a mano’, ejecutando sp_updatestats o mediante un plan de mantenimiento cuando la base de datos no tenga carga.


Os dejo un script que detecta que índices no tiene la actualización automatica y cuando fue la última vez que se actualizaron. Si hace mucho que un índice actualizó sus estadísticas, es interesante hacer un sp_updatestas sobre ese índice.


— Proprociona todos los índices que están en
— tablas de usuario si actualizan o no automáticamente
— sus estadisticas, además de la fecha de ultima actualización


SELECT
      object_name(indexes.object_id) AS table_name,
     
indexes.name AS index_name,
      STATS_DATE(indexes.object_id, indexes.index_id) AS last_update_date

FROM
      sys.indexes as indexes

INNER JOIN
      sys.stats AS stats ON
            indexes.object_id = stats.object_id
            AND indexes.name = stats.name

WHERE
    OBJECTPROPERTY(indexes.object_id, N‘IsUserTable’) = 1 AND
    stats.no_recompute = 1

ORDER BY 
    STATS_DATE
(indexes.object_id, indexes.index_id) ASC

2 comentarios sobre “¿Se están actualizando las estadísticas de tus índices?”

Responder a rcorral Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *