Системная функция 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
в имя индекса?1014 *