Pazīmes
Ja izmantojat jaunu Microsoft SQL Server 2016 (vai 2017) instanci vai SQL Server 2016 (vai 2017) instanci, kas ir jaunināta no vecākas SQL Server versijas, rodas veiktspējas problēmas liela centrālā procesora lietojuma dēļ. Turklāt, ja veicat vaicājumu sys.dm_os_spinlock_stats tabulai, pamanīsit, ka griezienu kolonnā SECURITY_CACHE (drošības kešatmiņa) un CMED_HASH_SET (metadatu kešatmiņa) rindās (salīdzinājumā ar citām tabulas rindām) ir liela vērtība. Piemēram, ievērojat šādas vērtības.
Iemesls
Šī problēma rodas tāpēc, ka pastāv liels griešanās slēdzenes strīds ļoti vienlaicīgā sistēmā. Šajās operētājsistēmās vairāki CPU pavedieni konkurē par resursiem un griežas ilgākā intervālā, kamēr tie periodiski darbojas cilpā, lai noteiktu, vai resurss ir pieejams, nevis uzreiz dodas. Kad vairāki CPU pavedieni turpina griezties ( pa kādu cilpu ) resursam, nevis ienesīg, tas izraisa augstas CPU izmantošanas un veiktspējas problēmas.
Risinājums
Šī problēma tika novērsta šādos SQL Server kumulatīvajos atjauninājumos:
Piezīme Pēc SQL Server 2016. gada 2. kumulatīvā atjauninājuma (CU2) lietošanas SECURITY_CACHE un CMED_HASH_SET nosaukumi tiek mainīti attiecīgi uz LOCK_RW_SECURITY_CACHE un LOCK_RW_CMED_HASH_SET. Pēc CU2 lietošanas vērtības ir šādas.
Par SQL Server kumulatīvajiem atjauninājumiem
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ā. Skatiet jaunākos SQL Server kumulatīvos atjauninājumus:
Jaunākais kumulatīvais atjauninājums SQL Server 2017
Jaunākais kumulatīvais atjauninājums SQL Server 2016
Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.
Baltajā grāmatā Diagnosticēt un atrisināt Spinlock strīdu uz SQL Server detalizēti aplūkoti jautājumi un risinājumi, kas saistīti ar spinlock strīdu.