Hva er SQL Server -statistikk?
SQL Server -statistikk er store binære objekter som brukes til å inneholde statistisk informasjon om distribusjonen av verdier i tabellkolonner.
SQL Server Query Optimizer bruker statistikken for å bestemme for å lage en estimert kardinalitet. Kardinalitetsverdien brukes deretter til å lage en optimalisert og høykvalitets utførelsesplan.
Kardinalitet refererer til antall rader.
Derfor er det viktig å holde SQL Server -statistikken oppdatert, ettersom feil statistiske resultater kan føre til en kostbar spørringsplan og høy ressursbruk. En dårlig utførelsesplan fra spørringsoptimisatoren kan føre til problemer, for eksempel blokkering og dødlåser.
Hva er utførelsesplan for SQL Server?
En utførelsesplan eller en spørringsplan refererer til en serie organiserte trinn for å spørre og få tilgang til data i en database. Query Optimizer vil generere en grafisk representasjon av den høyoptimaliserte metoden for å hente data for den spesifiserte spørringen.
Se SQL Server -statistikk
I SQL Server kan du bruke SQL Server Management Studio eller T-SQL Query for å se statistikken til et spesifikt objekt.
I SSMS, naviger til databaser -> Din måldatabase -> Tabeller -> Måltabell -> Statistikk.
Som vist:
For å se detaljene i et spesifikt statistikkobjekt, høyreklikk og velg alternativet. Du kan se forrige gang statistikken for kolonnene ble oppdatert som:
For å se distribusjonen og hyppigheten av histogrammet, bruk kategorien detaljer i Vinduet Egenskaper.
SQL Server View Statistics: Transact-SQL
Du kan også se detaljene i en statistikk ved hjelp av en T-SQL-spørring. Tenk på eksemplet som er vist nedenfor:
Bruk SalesDB;
plukke ut
statistikk.Navn,
stats_properties.sist oppdatert,
stats_properties.rader,
stats_properties.Rows_sampled,
stats_properties.Unfiltered_rows,
stats_properties.MODIFIKASJON_COUNTER,
stats_properties.trinn
fra Sys.Statistikk som statistikk
ytre påfør sys.dm_db_stats_properties (statistikk.objekt_id, statistikk.stats_id) som stats_properties
hvor objektnavn (statistikk.objekt_id) = 'kunder'
ordre av last_updated desc;
Spørringen ovenfor skal gi et eksempel på et eksempel som:
SQL Server gir også DBCC -kommandoen for å vise detaljene i en spesifikk statistikk. Eksempel:
dbcc show_statistics ('kunder', 'customerpk');
Spørringen over tar to parametere: henholdsvis tabellnavn og målstatistikk.
SQL Server Update Statistics
Det er forskjellige måter å oppdatere statistikk på i SQL Server. For å aktivere automatisk statistikkoppdatering, høyreklikker du på måldatabasen, navigerer i fanen Alternativer og angir "Auto Update Statistics" til True under den automatiske fanen.
For å oppdatere statistikk manuelt ved hjelp av T-SQL-spørring, bruk spørringen som vist:
Oppdater statistikk DBO.Kunder;
Hvor dbo.Kunder representerer måltabellen.
Du kan også bruke oppdateringsstatistikk -kommandoen som:
exec sp_updatestats;
Utgangen er som:
Konklusjon
Denne guiden dekker hvordan du jobber med SQL Server-statistikk og forskjellige metoder for å utføre statistikkoppdateringer i SSMS og T-SQL.