如何判断上次访问sql表的时间

Bra*_*ore 2 statistics sql-server-2008

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

如何判断是否正在访问数据库表?想要像"SELECT触发器"这样的东西

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

我的问题是:有没有办法告诉上次访问表的时间,如果上次访问是在SQL重新启动的最后一次之前?另外,如何判断SQL上次重启的时间?

小智 8

对于SQL Server 2008中的sql server启动时间,

select sqlserver_start_time from sys.dm_os_sys_info
Run Code Online (Sandbox Code Playgroud)

自服务器重启以来的最后用户访问

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]; 
Run Code Online (Sandbox Code Playgroud)

我每天记录这个表,所以我重新启动后就可以了.它们在被删除后也可以作为索引审计.