如何解决SQL 服务器 DMV动态管理视图未显示具有 2 个索引的表的最后用户更新信息
我正在使用以下 sql 服务器 DMV 来查明上次更新表的时间。
USE DB_NAME
GO
SELECT
[database_name] = DB_NAME(DB_ID()),[table_name] = tbl.[name],ius.last_user_update,ius.user_updates,ius.last_user_seek,ius.last_user_scan,ius.last_user_lookup,ius.user_seeks,ius.user_scans,ius.user_lookups
FROM sys.dm_db_index_usage_stats ius
INNER JOIN sys.tables tbl
ON (tbl.OBJECT_ID = ius.OBJECT_ID)
WHERE ius.database_id = DB_ID() -- current database
ORDER BY tbl.[name]
有 1 个表,上面有 2 个索引,并且该表已被我们的每日 ETL 刷新。上面的 DMV 显示了该特定表的 2 行,但它们的 last_user_update 列中都包含 NULL。我们没有做任何服务器重启/清除 DMV 缓存。同一张表位于我们的开发/生产环境中。奇怪的是,在 Dev 的前一天,DMV 显示了 last_user_update 值,但现在没有了。 Prod 中的 DMV 一直显示此表的空值。相同的 DMV 适用于其他表。
有谁知道我们如何获得这个特定表的 last_user_update 日期?谢谢!
database_name table_name last_user_update user_updates last_user_seek last_user_scan last_user_lookup user_seeks user_scans user_lookups
DB_NAME Emp NULL 0 2021-04-27 07:10:46.820 NULL NULL 1 0 0
DB_NAME Emp NULL 0 2021-04-27 07:33:54.480 2021-04-27 07:10:38.063 NULL 4 3 0
编辑2: 这些表的 ETL:
我们正在删除索引,因为这是一个数据仓库,我们每天都在重新捕获数据。
编辑 3: 找出问题所在。添加主键约束实际上会删除 last_update_date 的 DMV 数据。删除索引/重新创建索引不会。
感谢大家调查这个问题:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。