Dernière date de mise à jour d’une table SQL Server

Comment obtenir la dernière date de mise à jour d’une table dans une base de données SQL Server ? Vérifier le dernier accès et la dernière mise à jour avec une simple requête SQL ? Grâce aux tables du système de gestion des bases de données relationnelles SQL Server, une requête permet d’afficher les dernières modifications effectuées. On peut l’appliquer à n’importe quelle table ou vue SQL Server, comme les dernières analyses ou les dernières mises à jour par exemple.

Cette fonctionnalité est particulièrement utile à des fins d’audit ou de dépannage de la base de données, après une intégration de données par exemple. La requête indique également le nombre de mises à jour effectuées et l’heure de la dernière mise à jour de la table.

Afficher la dernière date de mise à jour d’une table SQL Server

En effet, le but ici est de savoir quand une table spécifique a été mise à jour. Par exemple, lorsque le framework SQL en place ne met pas à jour les métadonnées comme la date d’insertion ou de mise à jour. Veuillez noter que les métadonnées sont fortement recommandées, en particulier pour les données sensibles et les grandes quantités de données. La requête SQL utilise la table sys.tables et les tables système sys.dm_db_index_usage_stats.

SELECT     
    object_name(STAT.object_id) AS ObjectName, 
    USER_SEEKS,
    USER_SCANS,
    USER_LOOKUPS,
    USER_UPDATES,
    LAST_USER_SEEK,
    LAST_USER_SCAN,
    LAST_USER_LOOKUP,
    LAST_USER_UPDATE
FROM     SYS.DM_DB_INDEX_USAGE_STATS STAT JOIN
        SYS.TABLES TAB ON (TAB.OBJECT_ID = STAT.OBJECT_ID)
WHERE      DATABASE_ID = DB_ID();

Dans cet exemple, considérons uniquement la table des ventes, et le nombre d’accès effectués est de un. C’est-à-dire que pour la lecture des données, l’information se trouve dans la colonne « Last User Scan ». Nous voyons également une mise à jour dans la colonne nommée « Last User Update ». Pour obtenir ce résultat, très utile dans certains cas, l’exemple utilise la table système SYS.DM_DB_INDEX_USAGE_STATS.

Afficher les derniers accès à la table

La requête affiche également les recherches, les balayages et les consultations. Noter que ces tableaux contiennent de nombreuses autres statistiques utiles sur les tables. Cet article explique comment afficher la dernière date d’accès et de mise à jour d’une table SQL Server donnée. Par exemple les infos suivantes sont aussi pratiques dans certains cas de figure:

  • LAST_USER_SEEK: Dernière fois qu’une recherche d’index a été effectuée par un utilisateur.
  • LAST_USER_SCAN: Dernière fois qu’un balayage d’index complet ou partiel a été effectué par un utilisateur.
  • LAST_USER_LOOKUP: Dernière fois qu’une recherche de clé a été effectuée par une requête utilisateur sur un index non groupé.
  • LAST_USER_UPDATE: Dernière fois qu’une mise à jour a été effectuée sur un index ou une table par une requête utilisateur.

Ce code SQL est utile pour contrôler la conformité et aussi le débogage de programme T-SQL. Consulter cet autre article pour apprendre comment afficher une liste de toutes les tables et de l’espace disque occupé dans une base de données.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*