从SQL Server数据库中查找临时物理表

时间:2018-11-26 10:03:04

标签: sql sql-server tsql temp-tables

我正在使用的数据库具有 800多个物理表,其中一些是当前未使用的备份/临时表。

是否有查询从整个数据库中找出临时物理表?

1 个答案:

答案 0 :(得分:1)

简短的回答是“否”。首先,没有可靠的方法来识别一个表是“备份/临时”表还是“真实数据”表。 SQL Server不在乎为什么创建一个表。

您可以做的一件事是使用index usage stats来标识上一次更新或读取该表中的某些索引的时间:

SELECT
    OBJECT_NAME(OBJECT_ID) AS TableName
    , last_user_update
    , last_user_seek
    , last_user_scan
    , last_user_lookup
    , last_system_update
    , last_system_seek
    , last_system_scan
    , last_system_lookup
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID()

但是,这不可靠。这些统计信息在重新启动期间不会保留,因此您可能会错过上一次使用表的情况。另外,您可能需要进行一些自动化的索引维护,这将重建索引,并且该表可能看起来像使用过的那样。另外,如果很少使用该怎么办?仅在年初才运行去年的报告?

您可以获得的所有信息仅提示可能未使用的内容。去找你的同事问。重命名表格,等待有人开始尖叫。但是没有可靠的方法来获取此类信息。