KB2634571 – Forbedringer for DBCC CHECKDB-kommandoen kan gi raskere ytelse når du bruker alternativet PHYSICAL_ONLY

Gjelder for
SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Service Pack 3 SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2008 Service Pack 2 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Microsoft distribuerer feilrettinger for Microsoft SQL Server 2008 R2, SQL Server 2008 R2 SP1 og SQL Server 2008 som én nedlastbar fil. Fordi rettelsene er kumulative, inneholder hver nye utgivelse alle hurtigreparasjoner og alle sikkerhetsrettelser som var inkludert i den forrige SQL Server 2008 R2-, SQL Server 2008 R2 SP1- og SQL Server 2008-utgivelsen.

Innføring

DBCC CHECKDB-kommandoen balanserer behovet mellom ytelse og ressurser. Derfor kan det som standard hende at DBCC CHECKDB-kommandoen ikke maksimerer ressursbruken når konsekvenskontroller for en database kjøres.

Det kan for eksempel hende at kommandoen DBCC CHECKDB ikke maksimerer bruken av disk-I/O når konsekvenskontroller for en database kjøres.

Oppløsning

Informasjon om kumulativ oppdatering

SQL Server 2008 Service Pack 2

Løsningen på dette problemet ble først utgitt i samleoppdatering 9 for SQL Server 2008 Service Pack 2. Hvis du vil ha mer informasjon om denne kumulative oppdateringspakken, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

2673382 kumulativ oppdateringspakke 9 for SQL Server 2008 Service Pack 2

                 Vær oppmerksom på Siden byggene er kumulative, inneholder hver nye reparasjon alle hurtigreparasjoner og sikkerhetsrettelser som fulgte med den forrige SQL Server 2008-utgivelsen. Vi anbefaler at du vurderer å bruke den nyeste utgivelsen som inneholder denne hurtigreparasjonen. Du finner mer informasjon i følgende artikkel i Microsoft Knowledge Base:

2402659 SQL Server 2008-versjonene som ble utgitt etter at SQL Server 2008 Service Pack 2 ble utgitt

Microsoft SQL Server 2008-hurtigreparasjoner opprettes for bestemte SQL Server-oppdateringspakker. Du må bruke en hurtigreparasjon for SQL Server 2008 Service Pack 2 på en installasjon av SQL Server 2008 Service Pack 2. Som standard er alle hurtigreparasjoner som leveres i en SQL Server-oppdateringspakke, inkludert i den neste SQL Server-oppdateringspakken.

SQL Server 2008 Service Pack 3

Løsningen på dette problemet ble først utgitt i samleoppdatering 4 for SQL Server 2008 Service Pack 3. Hvis du vil ha mer informasjon om denne kumulative oppdateringspakken, les følgende artikkel i Microsoft Knowledge Base:

2673383 kumulativ oppdateringspakke 4 for SQL Server 2008 Service Pack 3

                 Vær oppmerksom på Siden byggene er kumulative, inneholder hver nye reparasjon alle hurtigreparasjoner og sikkerhetsrettelser som fulgte med den forrige SQL Server 2008-utgivelsen. Microsoft anbefaler at du vurderer å bruke den nyeste versjonen av løsningen som inneholder denne hurtigreparasjonen. Du finner mer informasjon i følgende artikkel i Microsoft Knowledge Base:

2629969 SQL Server 2008-versjonene som ble utgitt etter at SQL Server Service Pack 3 ble utgitt

Microsoft SQL Server 2008-hurtigreparasjoner opprettes for bestemte SQL Server-oppdateringspakker. Du må bruke en hurtigreparasjon av SQL Server 2008 Service Pack 3 på en installasjon av SQL Server 2008 Service Pack 3. Som standard er alle hurtigreparasjoner som leveres i en SQL Server-oppdateringspakke, inkludert i den neste SQL Server-oppdateringspakken.

Kumulativ oppdateringspakke 11 for SQL Server 2008 R2

Løsningen på dette problemet ble først utgitt i kumulativ oppdatering 11. Hvis du vil ha mer informasjon om hvordan du får tak i denne kumulative oppdateringspakken for SQL Server 2008 R2, kan du se følgende artikkel i Microsoft Knowledge Base:

2633145 kumulativ oppdateringspakke 11 for SQL Server 2008 R2

                 Vær oppmerksom på Fordi byggene er kumulative, inneholder hver nye reparasjon alle hurtigreparasjoner og alle sikkerhetsrettelser som fulgte med den forrige utgivelsen av SQL Server 2008 R2-feilretting. Vi anbefaler at du vurderer å bruke den nyeste utgivelsen som inneholder denne hurtigreparasjonen. Du finner mer informasjon i følgende artikkel i Microsoft Knowledge Base:

981356 SQL Server 2008 R2-byggene som ble utgitt etter at SQL Server 2008 R2 ble utgitt

Kumulativ oppdateringspakke 4 for SQL Server 2008 R2 SP1

Løsningen på dette problemet ble først utgitt i kumulativ oppdatering 4. Hvis du vil ha mer informasjon om hvordan du får tak i denne kumulative oppdateringspakken for SQL Server 2008 R2 SP1, kan du se følgende artikkel i Microsoft Knowledge Base:

2633146 kumulativ oppdateringspakke 4 for SQL Server 2008 R2 SP1

                 Vær oppmerksom på Siden byggene er kumulative, inneholder hver nye reparasjonsutgivelse alle hurtigreparasjoner og alle sikkerhetsrettelser som var inkludert i den forrige utgivelsen av SQL Server 2008 R2 SP1. Vi anbefaler at du vurderer å bruke den nyeste utgivelsen som inneholder denne hurtigreparasjonen. Du finner mer informasjon i følgende artikkel i Microsoft Knowledge Base:

2567616 SQL Server 2008 R2-bygg som ble utgitt etter at SQL Server 2008 R2 SP1 ble utgitt

SQL Server 2012

SQL Server 2012 inneholder kodeendringene for disse reparasjonene. Både sporingsflagg 2562 og 2549 som beskrevet nedenfor, gjelder også for SQL Server 2012. Løsningen for å redusere konflikt på DBCC_MULTIOBJECT_SCANNER-låsen krever imidlertid ikke sporingsflagg 2562 i SQL Server 2012. Disse endringene ble inkludert som standard i SQL Server 2012.

Mer informasjon

Denne kumulative oppdateringen introduserer to sporingsflagg for bedre maksimering av disk-I/U-ressursbruken når en bruker utfører DBCC CHECKDB-kommandoen . Selv om disse forbedringene bare retter seg mot det PHYSICAL_ONLY alternativet, kan de også forbedre den generelle ytelsen til DBCC CHECKDB-kommandoene som ikke bruker PHYSICAL_ONLY alternativet.

Sporingsflagg 2562

Dette sporingsflagget omfatter følgende endringer:

  • Kjør DBCC CHECKDB-kommandoen i en enkelt «gruppe», uavhengig av antallet indekser i databasen. Som standard prøver DBCC CHECKDB-kommandoen å minimere tempdb-ressurser ved å begrense antall indekser eller «fakta» som den genererer ved hjelp av et «gruppe»-konsept. Dette sporingsflagget tvinger all behandling i én gruppe.
  • Forbedre den interne behandlingen for å bestemme hvilke sider som skal leses fra databasen. Dette reduserer striden på DBCC_MULTIOBJECT_SCANNER-låsen .

Én effekt av å bruke dette sporingsflagget er at plasskravene for tempdb kan øke. Tempdb kan bli så mye som 5 prosent eller mer av brukerdatabasen som behandles av DBCC CHECKDB-kommandoen . Vi anbefaler derfor at du forhåndsdefinerer tempdb til minst 5 prosent av databasestørrelsen når du bruker dette sporingsflagget, for å unngå automatisk vekst som kan redusere ytelsen til DBCC CHECKDB-kommandoen .

Vær oppmerksom på Sporingsflagg 2562 er et sporingsflagg på øktnivå. Du kan aktivere det på øktnivå.

Spor flagg 2549

DBCC CHECKDB-kommandoen bygger en intern liste over sider som skal leses per unike diskstasjon på tvers av alle databasefiler. Denne logikken bestemmer unike diskstasjoner basert på stasjonsbokstaven til det fysiske filnavnet til hver fil. Hvis de underliggende diskene faktisk er unike når stasjonsbokstavene er eller ikke, vil DBCC CHECKDB-kommandoen behandle disse som én disk. Når dette sporingsflagget er aktivert, antas det at hver databasefil er på en unik diskstasjon. Ikke bruk dette sporingsflagget med mindre du vet at hver fil er basert på en unik fysisk disk.

Vær oppmerksom på Sporingsflagg 2549 er et globalt sporingsflagg. For å aktivere den må du bruke den som oppstartsparameter eller bruke DBCC TRACEON (2549,-1).

Selv om disse sporingsflaggene forbedrer ytelsen til DBCC CHECKDB-kommandoene som er rettet mot bruk av DBCC CHECKDB-alternativet , kan det hende at noen brukere ikke ser noen forbedring i ytelsen. Selv om disse sporingsflaggene forbedrer ressursbruken for disk-I/U, kan den underliggende ytelsen til diskressurser begrense den generelle ytelsen til DBCC CHECKDB-kommandoen .

Vær oppmerksom på følgende begrensninger:

  • Ytelsesforbedringene er ikke utformet for å forbedre ytelsen når du bruker reparasjonsalternativet .
    Ytelsesforbedringene er for eksempel ikke utformet for å forbedre ytelsen når du bruker REPAIR_ALLOW_DATA_LOSS alternativet.
  • Forbedringene påvirker ikke DBCC CHECKALLOC-kommandoen .
  • Forbedringene kan hjelpe ytelsen til DBCC CHECKTABLE-kommandoen for indekser med mange sider. Forbedringene er imidlertid ikke rettet mot å forbedre ytelsen til DBCC CHECKTABLE-kommandoen .

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen «Gjelder for».