Jam*_*len 24
SELECT
last_user_seek = MAX(last_user_seek),
last_user_scan = MAX(last_user_scan),
last_user_lookup = MAX(last_user_lookup),
last_user_update = MAX(last_user_update)
FROM
sys.dm_db_index_usage_stats
WHERE
[database_id] = DB_ID()
Run Code Online (Sandbox Code Playgroud)
使用此方法的一个警告是,每当您重新启动SQL Server时,DMV中的信息都将被清除并清空.
SQL*_*ood 12
扩展James Allen的答案:
SELECT d.name,
last_user_seek = MAX(last_user_seek),
last_user_scan = MAX(last_user_scan),
last_user_lookup = MAX(last_user_lookup),
last_user_update = MAX(last_user_update)
FROM sys.dm_db_index_usage_stats AS i
JOIN sys.databases AS d ON i.database_id=d.database_id
GROUP BY d.name
Run Code Online (Sandbox Code Playgroud)
如果您不希望每个数据库上下文生成结果并希望在结果集的开头包含数据库名称,请使用此修改版本.
select d.name, x1 =
(select X1= max(bb.xx)
from (
select xx = max(last_user_seek)
where max(last_user_seek) is not null
union all
select xx = max(last_user_scan)
where max(last_user_scan) is not null
union all
select xx = max(last_user_lookup)
where max(last_user_lookup) is not null
union all
select xx = max(last_user_update)
where max(last_user_update) is not null) bb)
FROM master.dbo.sysdatabases d
left outer join
sys.dm_db_index_usage_stats s
on d.dbid= s.database_id
group by d.name
Run Code Online (Sandbox Code Playgroud)
小智 5
刚刚看到这篇文章,就像今天被问到这个问题一样...好吧,被问到在一个有相当多的实例中未使用哪些数据库。\n因此,我将 Andrey Shvidky 的上述查询更改为写入临时表,然后选择结果,将已找到的任何内容与上次使用的最大日期进行比较,与 sys.databases\xe2\x80\xa6 中的任何剩余数据库理论是(和假设),这些最后都为 NULL使用日期,因此不会显示在主查询的结果中,因此是进一步调查以删除的候选者。
\n\nSELECT UNPVT.[DataBase], \n MaxLastUse = MAX(UNPVT.MaxLastUse)\n INTO #tempdatabases\n FROM\n (\n SELECT [DataBase], \n last_user_seek, \n last_user_scan, \n last_user_lookup, \n last_user_update\n FROM\n (\n SELECT [DataBase] = DB.[name], \n last_user_seek = MAX(IU.last_user_seek), \n last_user_scan = MAX(IU.last_user_scan), \n last_user_lookup = MAX(IU.last_user_lookup), \n last_user_update = MAX(IU.last_user_update)\n FROM sys.databases AS DB\n INNER JOIN sys.dm_db_index_usage_stats AS IU ON IU.database_id = DB.database_id\n GROUP BY DB.[name]\n ) AS DBIU\n) AS P UNPIVOT(MaxLastUse FOR ColumnName IN(last_user_seek, \n last_user_scan, \n last_user_lookup, \n last_user_update)) AS UNPVT\nGROUP BY UNPVT.[DataBase]\nHAVING MAX(UNPVT.MaxLastUse) IS NOT NULL\nORDER BY MAX(UNPVT.MaxLastUse) ASC;\nSELECT name, \n create_date AS 'Created on', \n 'Not used since last instance start', \n(\n SELECT create_date\n FROM sys.databases\n WHERE database_id = 2\n) AS 'Instance start date'\nFROM sys.databases\nWHERE database_id NOT IN(1, 2, 3, 4)\nAND name NOT IN\n(\n SELECT [DataBase]\n FROM #tempdatabases\n);\nDROP TABLE #tempdatabases;\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
67721 次 |
| 最近记录: |