Я думаю, вам нужен index_id в объединениях против sys.dm_db_partition_stats
и sys.indexes
.
Вероятно, лучше использовать первый параметр sys.dm_db_index_physical_stats
для фильтрации по дб, вместо предложения where ips.database_id = 6
.
Я не понимаю пунктов distinct
, group by
или sum(row_count)
.
Вот запрос, который вы можете попробовать и посмотреть, если он делает то, что вы хотите.
select
db_name(ips.database_id) as DataBaseName,
object_name(ips.object_id) as ObjectName,
sch.name as SchemaName,
ind.name as IndexName,
ips.index_type_desc,
ps.row_count
from sys.dm_db_index_physical_stats(6,NULL,NULL,NULL,'LIMITED') as ips
inner join sys.tables as tbl
on ips.object_id = tbl.object_id
inner join sys.schemas as sch
on tbl.schema_id = sch.schema_id
inner join sys.indexes as ind
on ips.index_id = ind.index_id and
ips.object_id = ind.object_id
inner join sys.dm_db_partition_stats as ps
on ps.object_id = ips.object_id and
ps.index_id = ips.index_id and
ps.partition_number = ips.partition_number