KB3191487 — uzlabota SQL Server stabilitāte un vienlaicīga vaicājumu izpilde dažiem kolonnu krātuves vaicājumiem operētājsistēmā SQL Server 2014 un 2016

Attiecas uz
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Pazīmes

Apsveriet šādu scenāriju:

  • Tabulā ir sagrupēti ColumnStore indeksi, un tabulā ir daudz kolonnu (simtos).
  • Šo kolonnu dati (datu tips) ir ļoti saspiežami dati, piemēram, varchar.
  • Šai tabulai ir jāpalaiž priekšraksts SELECT, lai atlasītu lielu apakškopu vai visas kolonnas no šīs tabulas.
  • Priekšrakstam select ir klauzula Where, kas ierobežo tā izvadi līdz tikai dažām rindām (vaicājums ir ļoti selektīvs).

Šādā gadījumā var rasties kāda no šīm pazīmēm vai visas šīs problēmas:

  • Vienlaicīga darba slodze (citi vaicājumi, kas serverī tiek izpildīti vienlaikus ar šo vaicājumu) var izraisīt veiktspējas samazināšanos un caurlaidspējas zudumu.
  • Dažkārt var būt redzams liels centrālā procesora lietojums.
  • Ja veicat vaicājumu sys.dm_os_ring_buffers un skatāt SchedulerMonitor tipa ierakstus, šī vaicājuma izpildes laikā tiek reģistrēti intermitējoši "neienesīga plānotāja" ziņojumi.
  • Kļūdu žurnālā var tikt parādīta neienesīga plānotāja kļūda, un var tikt ģenerēts simptomu atmiņas izmetes fails.

        
      

Risinājums

Šī problēma vispirms tika novērsta nākamajā SQL Server kumulatīvajā atjauninājumā:

Ieteikums: instalējiet jaunāko kumulatīvo atjauninājumu serverim SQL Server

Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Ieteicams lejupielādēt un instalēt jaunākos kumulatīvos SQL Server atjauninājumus:

      

Papildinformācija

Labot detalizētiDarbinieki, kas apstrādā kolonnu segmentus (to atspiešanu un atbilstošo rindu skenēšanu), izmantoja, lai "nodotu" CPU lietojumu citiem darbiniekiem/vienlaicīgām vaicājumu izpildēm, ja tika izvadīts noteikts rindu skaita slieksnis. Kad klauzula WHERE bija ļoti selektīva, lai radītu dažas rindas, darbinieki, kas apstrādāja šo vaicājumu, apstrādāja nesaspiestus un lielu segmentu skaitu (jo ļoti maz rindu kvalificējas), pirms viņi atteicās no CPU sadarbības veidā, lai citi darbinieki varētu apstrādāt savu darba slodzi. Tas izraisīja neregulāru centrālā procesora lietojumu un caurlaidspējas samazināšanos vienlaicīgai darba slodzei. Labojums optimizē un uzlabo centrālā procesora koplietošanas algoritmu šādiem kolonnu veikala vaicājumiem.

Atsauces

Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.