Preskočiť na obsah
Skript

Používanie indexov (seeks, scans, lookups, updates)

Ako často sa každý index v databáze číta (seek, scan, lookup) a koľkokrát sa udržiava pri zápisoch.

pouzivanie-indexov-seeks-scans-lookups-updates.sql 21 riadkov · T-SQL
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Používanie indexov (seeks, scans, lookups, updates)
   Účel:  Ako často sa každý index v databáze číta (seek, scan, lookup) a koľkokrát sa udržiava pri zápisoch.
   Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;

SELECT SCHEMA_NAME(t.schema_id) AS schema_name, t.name AS table_name,
       i.name AS index_name, i.index_id, i.type_desc,
       i.is_unique, i.is_primary_key, i.is_unique_constraint,
       ISNULL(u.user_seeks,0) AS user_seeks,
       ISNULL(u.user_scans,0) AS user_scans,
       ISNULL(u.user_lookups,0) AS user_lookups,
       ISNULL(u.user_updates,0) AS user_updates,
       u.last_user_seek, u.last_user_scan, u.last_user_update
FROM sys.tables AS t
JOIN sys.indexes AS i ON i.object_id=t.object_id
LEFT JOIN sys.dm_db_index_usage_stats AS u
 ON u.database_id=DB_ID() AND u.object_id=i.object_id AND u.index_id=i.index_id
WHERE i.index_id > 0 AND i.is_hypothetical = 0
ORDER BY ISNULL(u.user_updates,0) DESC, schema_name, table_name;
## Kedy použiť

Pred úvahou o odstránení indexu alebo pri pravidelnom index review.

## Ako čítať výsledok

Index s veľkým `user_updates` a nulovými `user_seeks` / `user_scans` / `user_lookups` je kandidát na preskúmanie. `user_updates` je počet operácií, nie počet zmenených riadkov.

> [!WARNING]
> Štatistiky sa nulujú po reštarte, odpojení databázy a na starších buildoch aj po REBUILD. Index môže chrániť unikátnosť, slúžiť mesačnému reportu alebo sezónnemu procesu – nikdy ho nemaž len podľa jedného odberu.

**Oprávnenia:** `VIEW DATABASE STATE` (na SQL Server 2022 stačí aj `VIEW DATABASE PERFORMANCE STATE`). Spúšťa sa v cieľovej databáze.  
**Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022

## Súvisiace recepty

- [Chýbajúce indexy](script.php?id=28&s=chybajuce-indexy-navrhy-optimalizatora)
- [Fragmentácia indexov](script.php?id=4&s=fragmentacia-indexov)