如何在SQL Server中查找未使用的表

Nei*_*ght 7 sql sql-server-2008

有没有办法找出数据最后输入表格的时间?我试图在我的数据库中找到过时的表,并想知道是否有一个我可以运行的简单脚本?

Ada*_*Dev 8

您可以尝试检查查询sys.dm_db_index_usage_stats动态管理视图的结果,如下所示:

SELECT *
FROM sys.dm_db_index_usage_stats
WHERE [database_id] = DB_ID() 
    AND [object_id] = OBJECT_ID('TableName')
Run Code Online (Sandbox Code Playgroud)

这将返回表上索引的last_user_seek,扫描和更新日期等内容.

但是,请注意,重新启动服务器时会重置动态管理视图的统计信息.服务器运行的时间越长,如果记录显示没有活动,您就越有信心.

我个人也会检查所有源代码以检查对相关表的引用,并搜索所有sprocs/UDF以获取引用(您可以使用Red Gate中的SQL搜索来执行此操作 - 它是免费的)