Symptomen
Wanneer u DDL-bewerkingen uitvoert, zoals een tabel maken, indexeren of afkappen in SQL Server 2016, worden de bewerkingen mogelijk geblokkeerd als er een andere DDL-transactie in dezelfde database wordt uitgevoerd.
Oplossing
Het probleem werd voor het eerst opgelost in de volgende cumulatieve update van SQL Server:
Aanbeveling: Installeer de meest recente cumulatieve update voor SQL Server
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. We raden u aan de meest recente cumulatieve updates voor SQL Server te downloaden en te installeren:
Meer informatie
Wanneer een DDL een tabel of index maakt of verwijdert, moet de rijset-id van de tabel of index worden ingevoegd in of verwijderd uit sysrowsets, waarvoor een rijniveau X-vergrendeling op de invoer moet worden geplaatst. Wanneer dit binnen een transactie gebeurt, wordt het X-slot vastgehouden voor de duur van de transactie.
Wanneer Tuple Mover doorspoelbare verwijderbuffers ontdekt, moet het sysrowsets herhalen om bestaande tabellen of indexen te detecteren. Om elke rij van sysrowsets te lezen, moet hij een rijniveau S-vergrendeling op de huidige waarde aanhouden. Het ontdekkingsproces stopt wanneer Tuple Mover de eerste rijenset vindt waaraan het kan werken. Op dit punt zal Tuple Mover het eigenlijke werk doen van het leegmaken van de verwijderbuffer, maar om er zeker van te zijn dat de ontdekte rijset nog steeds geldig is, zal het een SCH-S-vergrendeling houden op alle rijsets die het tijdens het ontdekkingsproces heeft geëvalueerd totdat het zijn werk heeft voltooid.
Sysrowsets wordt geordend op de rowset-id, dus het kan gebeuren dat Tuple Mover meerdere bestaande rowsets heeft gescand waarop het geen actie hoeft uit te voeren, maar nog steeds SCH-S-vergrendeling houdt en het komt bij een item in sysrowsets waarvoor het geen rijniveau S-vergrendeling kan krijgen, omdat het momenteel wordt gewijzigd door een langlopende transactie die een X-vergrendeling op de rij houdt. Op dit punt zijn DDL's met betrekking tot het wijzigen van rijset-id's geblokkeerd achter de SCH-S-sloten van Tuple Mover.
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.