KB3074425 – JAVÍTÁS: CMEMTHREAD várakozási rendszer fordul elő, amikor sok alkalmi lekérdezést hajt végre a SQL Server 2012-ben vagy 2014-SQL Server

Hatókör
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

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.

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:

      

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.