-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuseless-indexes.sql
More file actions
44 lines (44 loc) · 1.11 KB
/
useless-indexes.sql
File metadata and controls
44 lines (44 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
-- Les index inutilisés
SELECT
TOP 25
o.name AS ObjectName,
i.name AS IndexName,
i.index_id AS IndexID,
dm_ius.user_seeks AS UserSeek,
dm_ius.user_scans AS UserScans,
dm_ius.user_lookups AS UserLookups,
dm_ius.user_updates AS UserUpdates,
p.TableRows,
'DROP INDEX ' + QUOTENAME(i.name) + ' ON ' + QUOTENAME(s.name) + '.' + QUOTENAME(OBJECT_NAME(dm_ius.OBJECT_ID)) AS 'drop statement'
FROM
sys.dm_db_index_usage_stats dm_ius
INNER JOIN
sys.indexes i
ON i.index_id = dm_ius.index_id
AND dm_ius.OBJECT_ID = i.OBJECT_ID
INNER JOIN
sys.objects o
ON dm_ius.OBJECT_ID = o.OBJECT_ID
INNER JOIN
sys.schemas s
ON o.schema_id = s.schema_id
INNER JOIN
(SELECT
SUM(p.rows) TableRows,
p.index_id,
p.OBJECT_ID
FROM
sys.partitions p
GROUP BY
p.index_id,
p.OBJECT_ID) p
ON p.index_id = dm_ius.index_id
AND dm_ius.OBJECT_ID = p.OBJECT_ID
WHERE
OBJECTPROPERTY(dm_ius.OBJECT_ID,'IsUserTable') = 1
AND dm_ius.database_id = DB_ID()
AND i.type_desc = 'nonclustered'
AND i.is_primary_key = 0
AND i.is_unique_constraint = 0
ORDER BY
(dm_ius.user_seeks + dm_ius.user_scans + dm_ius.user_lookups) ASC