Jelenségek
Ha a Microsoft SQL Server 2016 (vagy 2017) új példányát vagy a SQL Server 2016 (vagy 2017) egy korábbi SQL Server verziójáról frissített példányát használja, a magas processzorhasználat miatt teljesítményproblémákat tapasztal. Emellett ha lekérdezi a sys.dm_os_spinlock_stats táblát, a SECURITY_CACHE (Security Cache) és a CMED_HASH_SET (Metadata Cache) sorok pörgetések oszlopában magas értéket észlel (a táblázat többi sorához képest). Például a következő értékeket láthatja.
A probléma oka
Ez a probléma a magas léptetőzár-versengés miatt fordul elő egy magas párhuzamos rendszerben. Ezekben az operációs rendszerekben több CPU-szál verseng az erőforrásokért, és hosszabb ideig forognak, miközben rendszeres időközönként futnak annak meghatározásához, hogy az erőforrás elérhető-e az azonnali hozam helyett. Ha több CPU-szál folyamatosan pörög ( egy idő alatt ) egy erőforráshoz a hozam helyett, az magas processzorhasználatot és teljesítményproblémákat okoz.
Megoldás
Ezt a problémát a SQL Server következő összegző frissítéseiben javítottuk:
Megjegyzés: A 2016. SQL Server 2. kumulatív frissítés (CU2) alkalmazása után a SECURITY_CACHE és a CMED_HASH_SET neve LOCK_RW_SECURITY_CACHE, illetve LOCK_RW_CMED_HASH_SET lesz. A CU2 alkalmazása után az értékek a következőképpen jelennek meg.
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 a SQL Server legújabb összegző frissítéseit:
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.
Hivatkozások
Megismerheti a Microsoft által a szoftverfrissítések leírására használt terminológiát . A spinlock versengés diagnosztizálása és megoldása című tanulmány részletesen ismerteti a spinlock versengéssel kapcsolatos problémákat és megoldásokat SQL Server.