4 IndexUsage Generic
4 IndexUsage Generic
/*** RV ***/
/*** Performance Optimization & Troubleshooting ***/
/*********************************************************/
-----------------------------------------------------------------------------------
-----------------
SELECT
DB_NAME() AS [database_name],
OBJECT_SCHEMA_NAME(sysidx.[object_id]) AS [schema],
OBJECT_NAME(sysidx.[object_id]) AS [object_name],
sysidx.[name] AS [index_name],
idxcol.key_columns,
idxcol.included_columns,
sysidx.filter_definition,
--sysidx.is_disabled,
sysidx.is_primary_key,
sysidx.is_unique,
idxusg.[user_seeks],
idxusg.[last_user_seek],
idxusg.[user_scans],
idxusg.[last_user_scan],
idxusg.[user_lookups],
idxusg.[last_user_lookup],
idxusg.[user_updates],
idxusg.[last_user_update],
idxstats.record_count,
(idxstats.page_count * 8) AS [index_size_kb],
convert(int,idxstats.avg_fragmentation_in_percent) as [fragmentation_percent]
FROM sys.indexes sysidx
LEFT JOIN sys.dm_db_index_usage_stats idxusg
ON sysidx.[object_id] = idxusg.[object_id]
AND sysidx.index_id = idxusg.[index_id]
OUTER APPLY sys.dm_db_index_physical_stats(db_id(), sysidx.[object_id], sysidx.
[index_id], NULL, 'DETAILED') idxstats
JOIN ( SELECT Tab.[name] AS TableName, Ind.[name] AS IndexName,
SUBSTRING( ( SELECT ', '+AC.name
FROM sys.[tables] AS T
ON I.[object_id] = IC.[object_id]
ON T.[object_id] = AC.[object_id]
AND IC.is_included_column = 0
FROM sys.[tables] AS T
ON T.[object_id] = I.[object_id]
ON I.[object_id] = IC.[object_id]
ON T.[object_id] = AC.[object_id]
AND IC.is_included_column = 1
ORDER BY IC.key_ordinal FOR XML PATH('') ), 2,
8000) AS included_columns
FROM sys.[indexes] Ind
INNER JOIN sys.[tables] AS Tab
ON Tab.[object_id] = Ind.[object_id]
INNER JOIN sys.[schemas] AS Sch
ON Sch.[schema_id] = Tab.[schema_id]
UNION
SELECT Tab.[name] AS TableName, Ind.[name] AS IndexName,
SUBSTRING( ( SELECT ', '+AC.name
FROM sys.[views] AS T
ON T.[object_id] = I.[object_id]
ON I.[object_id] = IC.[object_id]
ON T.[object_id] = AC.[object_id]
AND IC.is_included_column = 0
FROM sys.[views] AS T
ON T.[object_id] = I.[object_id]
ON I.[object_id] = IC.[object_id]
ON T.[object_id] = AC.[object_id]
AND IC.is_included_column = 1