PARANDUS: SOS_CACHESTORE spinlock väide ad hoc SQL serveri plaani vahemälu põhjustab suur protsessorikasutus SQL Server 2012 või 2014

NB! Artikkel on tõlgitud Microsofti masintõlketarkvaraga ja seda saab parandada Kogukonnapõhise tõlkeraamistiku (CTF) tehnoloogiaga. Microsoft pakub masintõlgitud, kogukonna järeltöödeldud ja inimtõlgitud artikleid, et anda mitmekeelne juurdepääs kõigile meie teabebaasi artiklitele. Masintõlgitud ja järeltöödeldud artiklites võib olla sõnavara-, süntaksi- ja/või grammatikavigu. Microsoft ei vastuta mingite ebatäpsuste, tõrgete ega kahjude eest, mis on tulenenud sisu valest tõlkest või selle kasutamisest meie klientide poolt. Lisateavet CTF-i kohta leiate aadressilt http://support.microsoft.com/gp/machine-translation-corrections/et.

Artikli ingliskeelse versiooni kuvamiseks klõpsake siin: 3026083
Sümptomid
Liiga palju samaaegseid lisab esinevad sama räsi bucket või ad hoc SQL serveri plaani vahemälu tabab selle kirje piiri 160,036, tekib tõsine argument SOS_CACHESTORE spinlock. Sellisel juhul esineb suur CPU kasutus Microsoft SQL Server 2012 või SQL Server 2014.
Põhjus
See probleem ilmneb, sest kui SQL serveri plaani vahemälu tabab kirje lubatud piirmäära, plaanide madala hinnaga tuleb eemaldada lisada uusi plaane. See põhjustab raske väide SOS_CACHESTORE spinlock sisalduvaid sünkroonimise SQL serveri plaani cache hash tabeli jääkfailihulgad.
Lahendus

Kumulatiivne teave

See probleem parandati esmakordselt järgmise koondvärskenduse SQL Server.

Kumulatiivseid värskendusi SQL serveri kohta

Iga uue SQL serveri koondvärskendus sisaldab kõiki Kiirparandusi ja kõiki turbeparandusi, mis sisaldusid eelmises koondvärskenduses. Vaadake SQL serveri kumulatiivseid värskendusi:
Lisateave
Plaani vahemälu on kaks piirmäära, suuruse ja kõik plaanid arv. Valges raamatus selgitatakse suurus ja kirje arvu piirangud Plaani vahemälu sees. Mahub plaani vahemälu kirjete maksimumarv on neli korda jääkfailihulgad arvu. Seda teavet saab kontrollida, kasutades järgmistele küsimustele:
select name, type, buckets_count from sys.dm_os_memory_cache_hash_tableswhere name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' ) select name, type, pages_kb, entries_count from sys.dm_os_memory_cache_counterswhere name IN ( 'SQL Plans' , 'Object Plans' ,  'Bound Trees' )
Näiteks 64-bitistes süsteemides jääkfailihulgad SQL serveri plaani vahemälu on 40,009. Seega mahub sees SQL serveri plaani vahemälu kirjete maksimumarv on 160,036. Kui teil on töökoormus, mis kasutab erinevaid ad hoc päringutele, see piirang võib muutuda kitsaskoht. Sel juhul saate selle käigultparanduse muutmiseks. Pärast kiirparanduse installimist ja lubada muudatuse käivitus trace abil märgistada -T 174, bucket arv suureneb 160,001 64-bitistes süsteemides. Seetõttu plaani vahemälu nüüd mahub 640,004 plaanide võimalikult palju.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises Kehtib järgmiste toodete kohta loetletud Microsofti toodetel.

Hoiatus. See artikkel on masintõlgitud.

Atribuudid

Artikli ID: 3026083 – viimati läbi vaadatud: 06/24/2015 08:32:00 – redaktsioon: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3026083 KbMtet
Tagasiside