Sql-Server-2008

如何檢查最後一次在ms sql server中修改數據庫中的任何表

  • December 11, 2020

我有大約 5 個數據庫,我每天對所有 5 個數據庫進行備份。我知道在這 5 個數據庫中,有 1 個未使用,我們仍在備份該數據庫。

我的問題是我們如何檢查數據庫是否正在使用,例如如何驗證數據庫中最後一次發生插入、更新或刪除的時間。

我認為我認為我可以檢查 1 週的數據庫大小,如果數據庫的大小相同,則意味著它沒有被使用。但我想檢查最後一次執行任何 DML 命令是什麼時候。

這應該為您提供有關在特定數據庫上執行最後一次讀/寫的詳細資訊。

USE server_name;
GO

SET ANSI_WARNINGS OFF;
SET NOCOUNT ON;
GO

WITH agg AS
  (
      SELECT 
      last_user_seek,
      last_user_scan,
      last_user_lookup,
      last_user_update
FROM
   sys.dm_db_index_usage_stats
WHERE
   database_id = DB_ID()
       )
          SELECT
            last_read = MAX(last_read),
            last_write = MAX(last_write)
         FROM
     (
SELECT last_user_seek, NULL FROM agg
UNION ALL
SELECT last_user_scan, NULL FROM agg
UNION ALL
SELECT last_user_lookup, NULL FROM agg
UNION ALL
SELECT NULL, last_user_update FROM agg
     ) AS x (last_read, last_write);

注意sys.dm_db_index_usage_stats不返回有關記憶體優化索引的資訊。有關記憶體優化索引使用的資訊,請參閱sys.dm_db_xtp_index_stats

引用自:https://dba.stackexchange.com/questions/169465