Problembeschreibung
Wenn Sie die DDL-Vorgänge wie CREATE Index oder TRUNCATE TABLE in SQL Server 2016 ausführen, werden die Vorgänge möglicherweise blockiert, wenn eine andere DDL-Transaktion in der gleichen Datenbank ausgeführt wird.
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben:
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Wir empfehlen, die neuesten kumulativen Updates für SQL Server herunterzuladen und zu installieren:
Weitere Informationen
Wenn eine DDL eine Tabelle oder einen Index erstellt oder löscht, muss Sie die Rowset-ID der Tabelle oder des Index aus sysrowsets, für die Sie eine Zeilenebene X-Sperre für den Eintrag enthalten muss, einfügen oder löschen. Wenn dies innerhalb einer Transaktion erfolgt, wird die X-Sperre für die Dauer der Transaktion aufbewahrt. Wenn der Tupel-Mover Spül Bare Lösch Puffer erkennt, muss er sysrowsets durchlaufen, um vorhandene Tabellen oder Indizes zu ermitteln. Damit jede Zeile von sysrowsets gelesen werden kann, muss Sie für den Eintrag, den Sie gerade liest, eine Zeilenebene sperren. Der Ermittlungsprozess wird beendet, wenn der Tupel Mover das erste Rowset findet, an dem er arbeiten kann. An diesem Punkt wird der Tupel-Mover die eigentliche Arbeit beim Leeren des Lösch Puffers ausführen, aber um sicherzustellen, dass das erkannte Rowset weiterhin gültig ist, enthält es eine Sch-S-Sperre für alle Rowsets, die es während des Ermittlungsprozesses ausgewertet hat, bis es seine Arbeit beendet hat.Sysrowsets wird nach der Rowset-ID geordnet. Daher kann es passieren, dass der Tupel-Mover mehrere vorhandene Rowsets gescannt hat, für die er keine Aktion ausführt, aber weiterhin die Sch-S-Sperre aufweist und ein Eintrag in sysrowsets eingeht, für den die Sperre auf Zeilenebene nicht abgerufen werden kann, da Sie zurzeit durch eine Transaktion mit langer Laufzeit geändert wird, die eine X-Sperre für die Zeile enthält. An diesem Punkt werden DDLS, die die Änderung der Rowset-ID beinhalten, hinter den Sch-s-Sperren des Tupel-Mover blockiert.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie , mit der Microsoft Softwareupdates beschreibt.