这个问题基本上是这个问题的延伸:
我怎样才能知道是否被访问了数据库表? 想要的东西就像一个“选择触发器”
以笔者在他的讯息解决方案所提供的查询,我认为一个空值就意味着一台尚未从上次重新启动SQL Server访问。
我的问题是:有没有办法告诉当一个表被最后一次访问,如果上次访问是最后一次SQL重启之前? 另外,我怎么能知道上一次SQL重新启动时?
这个问题基本上是这个问题的延伸:
我怎样才能知道是否被访问了数据库表? 想要的东西就像一个“选择触发器”
以笔者在他的讯息解决方案所提供的查询,我认为一个空值就意味着一台尚未从上次重新启动SQL Server访问。
我的问题是:有没有办法告诉当一个表被最后一次访问,如果上次访问是最后一次SQL重启之前? 另外,我怎么能知道上一次SQL重新启动时?
对于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];
我每天都登录这个表,所以我重新启动后,有它。 他们已被删除后,它也可以作为一个指标审核。