Simptomai
Tarkime, kad "Microsoft SQL Server 2008 R2" arba "Microsoft SQL Server 2012" kompiuteryje, kuriame yra keli CPU, užklausa yra dvejetainių didelių objektų (BLOB) stulpelis. Užklausa naudoja NOLOCK užuominą. Tokiu atveju jaučiate didelį CPU naudojimą kompiuteryje.Pastaba. Ši problema gali kilti, jei kompiuteryje yra 16 ar daugiau CPU įdiegtų.
Priežastis
Ši problema kyla dėl to, kad sukimosi užraktas backoff algoritmas nėra efektyvus.
Sprendimas
Kaupiamojo naujinimo informacija
Kaupiamasis naujinimas 2 SQL serverio 2012 SP1
Šios problemos taisymas pirmą kartą buvo išleistas 2 kaupiamąjį naujinimą. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamojo naujinimo paketą, skirtą "SQL Server" 2012 SP1, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2790947 Kaupiamojo naujinimo paketas 2 SQL serverio 2012 1 pakeitimų paketuiPastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija apima visas karštąsias pataisas ir visas saugos pataisas, kurios buvo pridėtos prie ankstesnio "SQL Server" 2012 SP1 pataisos leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2772858 SQL serverio 2012 komponavimo versijos, išleistos po "SQL Server 2012" 1 pakeitimų paketo išleidimo
Kaupiamasis naujinimas 5 SQL serverio 2012
Šios problemos taisymas pirmą kartą buvo išleistas 5 kaupiamąjį naujinimą. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamojo naujinimo paketą, skirtą "SQL Server 2012", spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2777772 Kaupiamojo naujinimo paketas 5 SQL serverio 2012Pastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2012 pataisų leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2692828 "SQL Server 2012" komponavimo versijos, išleistos po "SQL Server" 2012 išleidimo
"SQL Server 2008 R2" 2 pakeitimų paketas
Šios problemos taisymas pirmą kartą buvo išleistas 3 kaupiamąjį naujinimą. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamojo naujinimo paketą, skirtą "SQL Server 2008 R2" 2 pakeitimų paketui, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2754552 3 kaupiamųjų naujinimų paketas, skirtas "SQL Server 2008 R2" 2 pakeitimų paketuiPastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnės SQL serverio 2008 R2 Service Pack 2 pataisos leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2730301 SQL serverio 2008 R2 komponavimo versijos, išleistos po "SQL Server 2008 R2" 2 pakeitimų paketo išleidimo
Statusą
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.
Sprendimas
Norėdami išspręsti šią problemą, naudokite vieną iš šių būdų:
-
Sumažinti dvejetainių didžiųjų objektų stulpelio dydį.
-
Pašalinkite NOLOCK užuominą iš užklausos.
-
Sumažinkite "SQL Server" naudojamų CPU skaičių.