## Kedy použiť Keď plán zle odhaduje počet riadkov, po veľkom importe alebo pri regresii výkonu. ## Ako čítať výsledok `modification_counter` počíta zmeny vedúceho stĺpca štatistiky. `modified_pct_of_rows` je podiel zmien voči počtu riadkov pri poslednom update; `rows_sampled < rows` znamená vzorku. > [!WARNING] > Vek štatistiky sám osebe nie je dôvod na UPDATE STATISTICS – rozhoduje distribúcia a zmeny dát. Pri filtrovaných štatistikách sa `rows` týka len filtra. **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 - [Query Store – regresie](script.php?id=26&s=query-store-regresie-24-h-vs-predoslych-24-h)
Skript
Štatistiky – posledný update a počet zmien
Štatistiky s najväčším počtom zmien od poslednej aktualizácie, s dátumom update a vzorkou.
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Štatistiky – posledný update a počet zmien
Účel: Štatistiky s najväčším počtom zmien od poslednej aktualizácie, s dátumom update a vzorkou.
Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
SELECT TOP (100)
SCHEMA_NAME(o.schema_id) AS schema_name,
o.name AS object_name,
s.name AS statistics_name,
p.last_updated, p.rows, p.rows_sampled,
p.modification_counter,
CAST(p.modification_counter * 100.0 / NULLIF(p.rows, 0) AS decimal(18,2)) AS modified_pct_of_rows,
s.auto_created, s.has_filter, s.filter_definition
FROM sys.stats AS s
JOIN sys.objects AS o ON o.object_id = s.object_id
OUTER APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) AS p
WHERE o.type IN ('U', 'V')
AND o.is_ms_shipped = 0
ORDER BY p.modification_counter DESC;