Preskočiť na obsah
Skript

Chýbajúce indexy – návrhy optimalizátora

Návrhy optimalizátora na chýbajúce indexy v aktuálnej databáze, zoradené podľa odhadovaného prínosu. Signál, nie hotový CREATE INDEX.

chybajuce-indexy-navrhy-optimalizatora.sql 18 riadkov · T-SQL
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Chýbajúce indexy – návrhy optimalizátora
   Účel:  Návrhy optimalizátora na chýbajúce indexy v aktuálnej databáze, zoradené podľa odhadovaného prínosu. Signál, nie hotový CREATE INDEX.
   Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;

SELECT TOP (30) d.statement AS object_name,
       gs.user_seeks, gs.user_scans,
       CAST(gs.avg_total_user_cost AS decimal(18,2)) AS avg_total_user_cost,
       CAST(gs.avg_user_impact AS decimal(18,1)) AS avg_user_impact_pct,
       CAST(gs.user_seeks * gs.avg_total_user_cost * gs.avg_user_impact AS decimal(20,1)) AS relative_score,
       d.equality_columns, d.inequality_columns, d.included_columns
FROM sys.dm_db_missing_index_group_stats AS gs
JOIN sys.dm_db_missing_index_groups AS g ON g.index_group_handle=gs.group_handle
JOIN sys.dm_db_missing_index_details AS d ON d.index_handle=g.index_handle
WHERE d.database_id = DB_ID()
ORDER BY gs.user_seeks * gs.avg_total_user_cost * gs.avg_user_impact DESC;
## Kedy použiť

Pri ladení drahých dotazov, ako podklad pre ručný návrh indexu.

## Ako čítať výsledok

Sleduj `user_seeks`, `avg_user_impact_pct`, stĺpce rovnosti (`equality_columns`), rozsahové (`inequality_columns`) a `included_columns`. Podobné návrhy zlúč do jedného indexu.

> [!WARNING]
> DMV nezohľadňuje cenu zápisov, návrhy bývajú duplicitné, poradie stĺpcov nie je optimalizované a po reštarte zmiznú. Nikdy nevytváraj indexy automaticky.

**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

- [Používanie indexov](script.php?id=27&s=pouzivanie-indexov-seeks-scans-lookups-updates)