Статистика індексів певної таблиці (розмір індексу, та коли і як використовувався)
Запит статистики індексів таблиці SQL Server
Замініть 'YourTableName' на назву вашої таблиці. Запит показує розмір кожного індексу (в МБ), лічильники використання та час останнього використання.
SELECT
sch.name AS SchemaName,
t.name AS TableName,
i.name AS IndexName,
i.type_desc AS IndexType,
-- 📦 Розмір індексу
SUM(ps.used_page_count) * 8 / 1024.0 AS IndexSizeMB,
-- 📊 Використання
ISNULL(us.user_seeks, 0) AS UserSeeks,
ISNULL(us.user_scans, 0) AS UserScans,
ISNULL(us.user_lookups, 0) AS UserLookups,
ISNULL(us.user_updates, 0) AS UserUpdates,
-- 🕒 Останнє використання
us.last_user_seek,
us.last_user_scan,
us.last_user_lookup,
us.last_user_update
FROM sys.tables t
JOIN sys.schemas sch
ON sch.schema_id = t.schema_id
JOIN sys.indexes i
ON i.object_id = t.object_id
JOIN sys.dm_db_partition_stats ps
ON ps.object_id = i.object_id
AND ps.index_id = i.index_id
LEFT JOIN sys.dm_db_index_usage_stats us
ON us.object_id = i.object_id
AND us.index_id = i.index_id
AND us.database_id = DB_ID()
WHERE t.name = 'YourTableName' -- 👈 назва таблиці
AND i.index_id > 0 -- без heap-запису
GROUP BY
sch.name,
t.name,
i.name,
i.type_desc,
us.user_seeks,
us.user_scans,
us.user_lookups,
us.user_updates,
us.last_user_seek,
us.last_user_scan,
us.last_user_lookup,
us.last_user_update
ORDER BY IndexSizeMB DESC;
Andriy Kravchenko
Admin, Writer, File Uploader
Останнє оновлення:
26.11.2025 18:15:52
34