Cuando fue la ultima que se uso una tabla?

Hace rato que no escribia, he andado como siempre en mucha cosa. Estoy jugando un poco con PostGreSQL y Azure, seguramente empezare a incluir esa informacion en futuras entradas a este blog.

La respuesta  a la pregunta del titulo me ha servido muchas veces como administrador de una base de datos a lo largo de los años.

Esta consulta esta basada en una vista de systema que analiza el uso de los indices de nuestras tablas.

sys.dm_db_index_usage_stats
SELECT  DB_NAME(a.database_id) Database_Name ,
        b.name Table_Name ,
        MAX(last_user_update) last_user_update ,
        MAX(last_user_seek) last_user_seek ,
        MAX(last_user_scan) last_user_scan ,
        MAX(last_user_lookup) last_user_lookup
FROM    sys.dm_db_index_usage_stats a
        INNER JOIN sys.tables b ON b.object_id = a.object_id
<span 				data-mce-type="bookmark" 				id="mce_SELREST_start" 				data-mce-style="overflow:hidden;line-height:0" 				style="overflow:hidden;line-height:0" 			></span>WHERE   a.database_id = DB_ID()
GROUP BY a.database_id ,
        b.name ,
        c.name
ORDER BY a.database_id ,
        b.name ;

Utilizando este mismo codigo podemos determinar cuando fue la ultima vez que se utilizo uno de nuestros indices

SELECT  DB_NAME(a.database_id) Database_Name ,
        b.name Table_Name ,
        c.name Index_Name ,
        MAX(last_user_update) last_user_update ,
        MAX(last_user_seek) last_user_seek ,
        MAX(last_user_scan) last_user_scan ,
        MAX(last_user_lookup) last_user_lookup
FROM    sys.dm_db_index_usage_stats a
        INNER JOIN sys.tables b ON b.object_id = a.object_id
        INNER JOIN sys.indexes c ON c.object_id = a.object_id
                                    AND c.index_id = a.index_id
WHERE   a.database_id = DB_ID()
GROUP BY a.database_id ,
        b.name ,
        c.name
ORDER BY a.database_id ,
        b.name ,
        c.name;

Toda pieza de informacion es valiosa, en este caso puede ayudarme a ver si mi politica de creacion de indices esta sirviendo o no, puede indicarme cuales tablas tienen mas trafico y ayudarme a tomar decisiones para mejorar un problema de contencion.

Saludos

Referencia:
https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-index-usage-stats-transact-sql

DBA for more than 12 years, the DBA manager of a team of 7.

Tagged with: ,
Publicado en MSSQL Administration, MSSQL Development, Troubleshoot, Vistas de Sistema

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Busca por:
  • Que clase de castigo con sueledo pago! Y seguimos preguntando el porque estamos asi! nacion.com/el-pais/magist… 1 week ago
  • Helped nearby drivers by reporting a heavy traffic jam on Ruta 39 / Circv., Rohrmoser, Pavas, San José on @waze - Drive Social. https://g... 4 weeks ago
  • Helped nearby drivers by reporting a stand still traffic jam on Ruta 39 / Circv., Rohrmoser, Pavas, San José on @waze - Drive Social. htt... 4 weeks ago
A %d blogueros les gusta esto: