Symptomer
Tenk deg følgende:
-
Du har en tabell som har sektorgrupperte indekser for columnstore på den, og tabellen inneholder mange kolonner (i hundrevis).
-
Data (Datatype) av disse kolonnene er svært Komprimerbar data, for eksempel varchar.
-
Du kan kjøre en SELECT -setning mot denne tabellen til å velge et stort delsett eller alle kolonner fra denne tabellen.
-
Select -setningen har en WHERE -setningsdel som begrenser utdata fra den til en svært få rader (spørringen er svært selektiv).
I dette scenariet kan du støte noen av eller alle følgende symptomer:
-
Samtidige arbeidsmengden, (andre spørringer som kjøres på samme tid på serveren som denne spørringen), kan det oppstå reduksjon i ytelse og tap av ytelse.
-
Du kan se uregelmessig høyt forbruk av CPU.
-
Hvis du spør sys.dm_os_ring_buffers og vise SchedulerMonitor oppføringer, kan du finne forbigående "ikke gir scheduler" meldinger logges under utførelsen av denne spørringen.
-
Du kan få en ikke-noe som gir en scheduler feilmelding i feilloggen, og en minnedumpfil symptomet kan genereres.
Oppløsning
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server:
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:
Hvis du vil ha mer informasjon
Løse detaljerArbeiderne at prosessen kolonne-segmenter (dekomprimerer dem og skanne dem etter kvalifiserte rader) til å "avkastning" CPU-bruken til andre arbeidere/samtidige spørringer kjøringer når en bestemt terskelverdi for antall rader ble utdata. Når WHERE -setningsdel ble svært Selektiv å produsere noen rader, behandlet arbeidere som behandler spørringen ukomprimert og store antall segmenter (fordi det er svært få rader kvalifisere) før de ga opp CPU samarbeidende måte for andre arbeidere til å behandle belastningen. Dette førte til uregelmessig CPU forbruk og gjennomstrømning dårligere for samtidige arbeidsmengde. Hurtigreparasjonen optimaliserer og bedrer CPU deling algoritmen for slike columnstore spørringer.
Referanser
Lær mer om terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.