Når skal jeg oppdatere statistikk?

Jeg har arvet et vedlikeholdsplan som gjør følgende:

  • Opprydding av gamle data
  • Kontrollerer DB-integritet
  • Utfører sikkerhetskopier av databaser og transaksjonslogger
  • Omorganiserer indeksene våre
  • Oppdateringsstatistikk
  • Slett gamle sikkerhetskopier og vedlikeholdsplanfiler

Av vedlikeholdsplanen på 23 minutter tar oppdatering av statistikken svimlende 13 minutter. I løpet av denne 13 minutters perioden er tilgang til databasen blokkert (eller i det minste replikering fra denne databasen til våre andre er satt på pause).

Spørsmålet mitt er:

Når skal vi være Oppdatering av statistikken, og hvorfor?

Dette virker som den slags ting vi burde gjøre sjeldnere enn hver dag. Jeg prøver å få oss ut av «bare fordi» tankegangen for å gjøre unødvendig Vedlikehold.

Kommentarer

  • Hvor ofte / hvordan noen rader blir satt inn / oppdatert / slettet? For meg er dette den avgjørende faktoren.
  • @JNK Vi setter inn ~ 70.000 rader per dag over hele DB. Oppdater ~ 100 rader i måneden.
  • 1 – Dette er mer relevant hvis vi ved TABELL vet hvor mange rader, og 2 – som en prosentandel. 70 000 rader per dag i en tabell på 1 meter er mye annerledes enn i en tabell på 500 meter.
  • Jeg vil anbefale å bruke noen ting som ola.hallengren.com / … denne løsningen gjenoppbygger / reorganiserer bare og oppdaterer det som trengs på denne måten. Du kan forkorte tiden vedlikeholdsplanen din tar, og også spare hull i loggplassen ..

Svar

Hvis du ikke har vedlikeholdsvinduet for det, er det sannsynligvis litt overkill å oppdatere statistikk daglig. . Spesielt hvis du har slått på automatisk oppdateringsstatistikk for databasen. I det opprinnelige innlegget ditt sa du at brukerne ser en ytelsesforringelse på grunn av denne vedlikeholdsplanen. Er det ingen annen tid til å kjøre dette vedlikeholdet plan? Ingen andre vinduer? Jeg ser at planen din omfatter omorganisering av indekser. Når bygger du om indekser? Når denne operasjonen skjer, oppdateres statistikken automatisk (forutsatt at den ikke er slått av for i dex).

Nøyaktig hvor ofte du skal oppdatere statistikk, avhenger i stor grad av hvor mye dataendring indeksene og dataene dine mottar . Hvis det er veldig lite modifisering (INSERT, UPDATE, DELETE) til dataene, da kan du ha en sjeldnere tidsplan for oppdateringsstatistikkjobben.

En måte å finne ut om statistikken din er gammel er å se på utførelsesplanene, og om du anslår at radene er veldig forskjellige fra de faktiske returnerte radene. da er det en god indikasjon på at intervallet må oppes. I ditt tilfelle går du den andre veien, og litt prøveperiode kan være i orden for deg. Oppdater statistikken ukentlig, og hvis du begynner å se tegnene på foreldet statistikk, så gå derfra. p>

Hvis du bruker automatisk oppdateringsstatistikk for databasen din, kan du se denne referansen for terskelen for når statistikken oppdateres.

Kommentarer

  • Vi bygger om indeksene en gang i uken.
  • @ Onion-Knight Så oppdaterer du også statistikk en gang i uken når du bygger om indeksene dine. . Det kan være tilstrekkelig hvis du ' gjør en teppeindeks gjenoppbygd i hele databasen.

Svar

Når skal du oppdatere statistikk?

hvis og bare hvis statistikk for automatisk oppdatering -funksjonen er ikke god nok for dine behov. Jeg mener hvis statistikk for automatisk oppretting og automatisk oppdatering er PÅ og du får en dårlig spørringsplan fordi statistikken ikke er nøyaktig eller oppdatert, kan det være lurt å ha kontroll over opprettelse og oppdatering av statistikk. men hvis du har det bra med SQL Server-ytelsen og spørringstidene.

så foreslår jeg at du stopper Oppdateringsstatistikk kommando fra Vedlikeholdsplaner

oppdatering av statistikk er viktig og nyttig 1. gjør det mulig for SQL Server-spørringsoptimerer å produsere gode spørringsplaner konsekvent, mens utviklings- og administrasjonskostnadene holdes lave 2. Statistikk brukes av spørringsoptimaliser å estimere uttrykkets selektivitet, og dermed størrelsen på resultatene for mellomliggende og endelige spørringer. 3.God statistikk gjør at optimalisereren nøyaktig kan vurdere kostnadene for forskjellige spørringsplaner og deretter velge en plan av høy kvalitet.


Hvis du vil oppdatere statistikk manuelt, bør du først vite Når statistikken oppdateres automatisk

Hvis SQL Server-spørringsoptimereren krever statistikk for en bestemt kolonne i en tabell som har gjennomgått betydelig oppdatering aktivitet siden sist gang statistikken ble opprettet eller oppdatert, oppdaterer SQL Server automatisk statistikken ved å prøve kolonneverdiene (ved hjelp av automatisk oppdateringsstatistikk). Statistisk automatisk oppdatering utløses av spørreoptimalisering eller ved utføring av en kompilert plan, og den involverer bare et delsett av kolonnene det henvises til i spørringen. Statistikk oppdateres før kompilering av spørringer hvis AUTO_UPDATE_STATISTCS_ASYNC er AV

her er fine artikler som snakker om når oppdateringsstatistikk utløses i SQL server

  1. fra enkel snakk Avsnitt 13. Når utløses automatisk oppdatering av statistikk?
  2. support.microsoft Seksjon: Automatisering av autostatsbestemmelse
  3. msdn.microsoft seksjon: Opprettholde statistikk i SQL Server 2008

etter å ha vite når statistikk utløses, vil det hjelpe deg å bestemme når du vil oppdatere statistikk manuelt

for å vite mer om statistikk & effekten på ytelsen jeg anbefaler BrentOzar og Kimberly i sqlskills veldig gode blogger & bloggere .

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *