如何知道当一个SQL表最后一次访问(How to tell when a sql table was

2019-09-16 15:29发布

这个问题基本上是这个问题的延伸:

我怎样才能知道是否被访问了数据库表? 想要的东西就像一个“选择触发器”

以笔者在他的讯息解决方案所提供的查询,我认为一个空值就意味着一台尚未从上次重新启动SQL Server访问。

我的问题是:有没有办法告诉当一个表被最后一次访问,如果上次访问是最后一次SQL重启之前? 另外,我怎么能知道上一次SQL重新启动时?

Answer 1:

对于SQL Server启动时间在SQL Server 2008中,

select sqlserver_start_time from sys.dm_os_sys_info

对于因为服务器重启上次用户访问,

select DB_NAME(us.[database_id]) as [db], OBJECT_NAME(us.[object_id], us.[database_id]) as [object], 
MAX(us.[last_user_lookup]) as [last_user_lookup], MAX(us.[last_user_scan]) as [last_user_scan], MAX(us.[last_user_seek]) as [last_user_seek] 
from sys.dm_db_index_usage_stats as us 
where us.[database_id] = DB_ID() AND us.[object_id] = OBJECT_ID('tblname')
group by us.[database_id], us.[object_id]; 

我每天都登录这个表,所以我重新启动后,有它。 他们已被删除后,它也可以作为一个指标审核。



文章来源: How to tell when a sql table was last accessed