Sql server 上次访问了哪些表

Sql server 上次访问了哪些表,sql-server,tsql,Sql Server,Tsql,我想知道访问的前N个表。我只得到了一个特定表的数据库和谷歌地址中的大多数链接的最后日期访问 SELECT DatabaseName, MAX(LastAccessDate) LastAccessDate FROM (SELECT DB_NAME(database_id) DatabaseName , last_user_seek , last_user_scan , last_user_lookup , la

我想知道访问的前N个表。我只得到了一个特定表的数据库和谷歌地址中的大多数链接的最后日期访问

SELECT DatabaseName, MAX(LastAccessDate) LastAccessDate
FROM
    (SELECT
        DB_NAME(database_id) DatabaseName
        , last_user_seek
        , last_user_scan
        , last_user_lookup
        , last_user_update
    FROM sys.dm_db_index_usage_stats) AS PivotTable
UNPIVOT 
    (LastAccessDate FOR last_user_access IN
        (last_user_seek
        , last_user_scan
        , last_user_lookup
        , last_user_update)
    ) AS UnpivotTable
GROUP BY DatabaseName
HAVING DatabaseName NOT IN ('master', 'tempdb', 'model', 'msdb')
ORDER BY 2

现在我需要这张桌子。有什么想法或链接吗?

只需对代码稍作调整,就可以一次轻松完成一个数据库的操作:

USE Your_Database;
GO

SELECT [schema]  = OBJECT_SCHEMA_NAME([object_id]), 
  [object]       = OBJECT_NAME([object_id]), 
  LastAccessDate = MAX(LastAccessDate)
FROM
    (SELECT
        [object_id]
        , last_user_seek
        , last_user_scan
        , last_user_lookup
        , last_user_update
    FROM sys.dm_db_index_usage_stats
    WHERE database_id = DB_ID()) AS PivotTable
UNPIVOT 
    (LastAccessDate FOR last_user_access IN
        (last_user_seek
        , last_user_scan
        , last_user_lookup
        , last_user_update)
    ) AS UnpivotTable
GROUP BY [object_id]
ORDER BY LastAccessDate;
当然,这只有在上次服务重新启动或重新配置后才有效

如果要针对每个数据库执行此操作,可以使用我的自定义sp_MSforeachdb替换:


您可以一次轻松地在一个数据库中执行此操作,只需稍微调整代码:

USE Your_Database;
GO

SELECT [schema]  = OBJECT_SCHEMA_NAME([object_id]), 
  [object]       = OBJECT_NAME([object_id]), 
  LastAccessDate = MAX(LastAccessDate)
FROM
    (SELECT
        [object_id]
        , last_user_seek
        , last_user_scan
        , last_user_lookup
        , last_user_update
    FROM sys.dm_db_index_usage_stats
    WHERE database_id = DB_ID()) AS PivotTable
UNPIVOT 
    (LastAccessDate FOR last_user_access IN
        (last_user_seek
        , last_user_scan
        , last_user_lookup
        , last_user_update)
    ) AS UnpivotTable
GROUP BY [object_id]
ORDER BY LastAccessDate;
当然,这只有在上次服务重新启动或重新配置后才有效

如果要针对每个数据库执行此操作,可以使用我的自定义sp_MSforeachdb替换:


我刚刚在你的博客上找到了这篇文章,并打算在这里发表我刚刚在你的博客上找到了这篇文章,并打算在这里发表