Tünetek
Tegyük fel, hogy sok statisztika és táblázat van, és a táblázatok sok oszlopot tartalmaznak a Microsoft SQL Server 2012-es vagy SQL Server 2014-es adatbázisban. Ha egyidejűleg sok alkalmi lekérdezést hajt végre adatok beolvasására ezekből a táblákból, CMEMTHREAD várakozásokat tapasztalhat a végrehajtás során.
Megoldás
Összegző frissítéssel kapcsolatos információk
A hibát először az SQL Server következő összegző frissítésében javítottuk.
- 2. összegző frissítés az SQL Server 2014 SP1-hez
- 9-es összegző frissítés az SQL Server 2014-hez
- 7-es összegző frissítés az SQL Server 2012 SP2-höz
Javaslat: Telepítse az SQL Server legújabb összegző frissítését
Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Javasoljuk, hogy töltse le és telepítse az SQL Server legújabb összegző frissítéseit:
- Az SQL Server 2014 SP1 legújabb összegző frissítése
- Az SQL Server 2014 legújabb összegző frissítése
- Az SQL Server 2012 SP2 legújabb összegző frissítése
További információ
Amikor lekérdezést fordít vagy fordít újra az SQL Server 2012-ben, a motornak statisztikai hisztogramból kell beolvasnia a bemeneteket. Rendszertábla-vizsgálatot kell végrehajtanunk, majd be kell töltenünk a memóriába vagy a gyorsítótárba az érintett táblák konkrét hisztogramját. Ezek a rendszertábla-bejegyzések (a statisztikák érdekében) a rendszertábla gyorsítótárában (CACHESTORE_SYSTEMROWSET vannak tárolva. A bejegyzések létrehozásához használt memóriaobjektum a gyorsítótárban nincs particionálva, hanem globális.
Ezért ha a művelet során egyidejűleg van memóriafoglalása, CMEMTHREAD várakozásokat fog tapasztalni erre a memóriaobjektumra. Erre általában akkor kerül sor, ha sok, fordítást vagy újrafordítást igénylő lekérdezést küld el.
Ez a gyorsjavítás úgy módosítja a particionálandó globális memóriaobjektumot, hogy a rendszertábla gyorsítótárát használó egyidejű memóriafoglalások ne ütközzenek versengésbe és a CMEMTHREAD várakozik.
A hasonló problémáról további információt a KB 3026082 című cikk tartalmaz: JAVÍTÁS: SOS_CACHESTORE rendszertábla sorkészlet-gyorsítótárának spinlock versengése magas processzorhasználatot okoz a SQL Server 2012-ben és 2014-ben.
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.