Jelenségek
Ha túl sok egyidejű beszúrás történik ugyanabban a kivonatgyűjtőben, vagy az alkalmi SQL Server tervgyorsítótár eléri a 160 036-os belépési korlátot, súlyos versengés történik SOS_CACHESTORE spinlockon. Ebben az esetben a Microsoft SQL Server magas processzorhasználatot tapasztal.
A probléma oka
A probléma akkor fordul elő, ha a SQL Server terv gyorsítótára eléri a belépési korlátját, és az alacsony költségű csomagokat ki kell zárni az új tervek beszúrásához. Ez nagy versengést okoz a SOS_CACHESTORE spinlock miatt, amely szinkronizálást biztosít a SQL Server csomag gyorsítótárának kivonattáblázat-gyűjtőihez.
Megoldás
Kumulatív frissítés adatai
A problémát először a SQL Server következő kumulatív frissítésében javítottuk.
A SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és az előző összegző frissítésben szereplő összes biztonsági javítást. Tekintse meg az SQL Server legújabb összegző frissítéseit:
További információ
A csomaggyorsítótárnak két korlátja van: a teljes méret és az összes csomag teljes száma. A méret- és bejegyzésszámkorlátokat a következő tanulmány ismerteti:
A gyorsítótár belső elemeinek megtervezése
A csomaggyorsítótár legfeljebb négyszer annyi bejegyzést tartalmazhat, mint a gyűjtők száma. Ezeket az információkat a következő lekérdezések futtatásával ellenőrizheti:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
64 bites rendszereken például a SQL Server csomag gyorsítótárának gyűjtőinek száma 40 009. Ezért az SQL Server csomag gyorsítótárában legfeljebb 160 036 bejegyzés fér el.
Ha különböző alkalmi lekérdezéseket használó számítási feladatsal rendelkezik, ez a korlát szűk keresztmetszetté válhat. A gyorsjavítás által végrehajtott módosítás orvosolja ezt a helyzetet. Miután telepítette a gyorsjavítást, és engedélyezte a módosítást a "-T 174" indítási nyomkövetési jelzővel, a gyűjtők száma 64 bites rendszereken 160 001-re nő. A csomaggyorsítótár ezután legfeljebb 640 004 csomagot képes tárolni.
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.