Fun*_*ung 5 sql-server maintenance
我正在维护一个由几个系统共享的数据库。多年来,其中一些系统已被弃用,许多表实际上是孤立的。是否可以运行查询来找出自某个日期以来没有使用过哪些表?
谢谢。
sys.objects 表会跟踪表结构上次修改的时间,但最接近的是通过查询 sys.dm_db_index_usage_stats 来查找表数据的上次更新或使用时间。这会跟踪索引更新(包括堆或没有索引的表)。 问题是,它只跟踪自上次服务器重新启动以来的数据。
select db_name(database_id) dbname,
object_name(object_id,database_id) oname,
MAX(CASE WHEN last_user_update < last_system_update THEN last_system_update ELSE last_user_update END) as LastUpdated
from sys.dm_db_index_usage_stats
group by database_id,object_id
order by db_name(database_id),object_name(object_id,database_id)
Run Code Online (Sandbox Code Playgroud)
此示例查询是从以下链接借用的:http : //www.sqlservercentral.com/Forums/Topic852747-146-1.aspx#bm852757