【发布时间】:2011-08-13 10:28:01
【问题描述】:
系统函数sys.dm_db_index_physical_stats返回服务器上所有索引的碎片。它返回表和索引的id 而不是名称。可以使用db_name、object_schema_name 和object_name 找到数据库、模式和对象的名称:
select db_name(ips.database_id)
, object_schema_name(ips.object_id, ips.database_id)
, object_name(ips.object_id, ips.database_id)
, ips.index_id
, ips.avg_fragmentation_in_percent
from sys.dm_db_index_physical_stats(null, null, null, null, null) ips
函数object_name 不适用于索引。与sys.indexes 的连接有效,但它是特定于数据库的,因此您必须使用动态 SQL 在游标中运行它。
有没有更好的方法将index_id 转换为索引的名称?
【问题讨论】:
标签: sql sql-server sql-server-2005