我已经运行了下面的查询,以便找到要删除的索引。
SELECT d.name AS DatabaseName, t.name AS TableName, i.name AS IndexName, ius.*
FROM sys.dm_db_index_usage_stats ius
JOIN sys.databases d ON d.database_id = ius.database_id
JOIN sys.tables t ON t.object_id = ius.object_id
JOIN sys.indexes i ON i.object_id = ius.object_id AND i.index_id =
ius.index_id
ORDER BY user_updates DESC
但返回的结果集非常令人困惑。我正在为具有不同database_ids的相同索引接收多行,因此名称。我们假设我们有一个索引,它的名字是IDXName,它是IDXID。该索引在DB1数据库中的TBL1下。但是这个索引有多行,索引名称相同,索引ID相同,表名相同但数据库ID不同。
我仔细检查了Microsoft文档,并确认该视图中的数据库ID是索引所在的数据库。那么为什么我有数据库的ID,该索引不存在?