Simptome
Atunci când efectuați operațiunile DDL, cum ar fi crearea unui tabel index sau trunchiere în SQL Server 2016, operațiunile pot fi blocate dacă există o altă tranzacție DDL care rulează în aceeași bază de date.
Rezolvare
Problema a fost remediată pentru prima dată în următoarea actualizare cumulativă de SQL Server:
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Vă recomandăm să descărcați și să instalați cele mai recente actualizări cumulative pentru SQL Server:
Mai multe informații
Atunci când un DDL creează sau șterge un tabel sau un index, trebuie să insereze sau să șteargă ID-ul rânduri al tabelului sau indexului din sysrowsets, pentru care trebuie să dețină un nivel de blocare X la intrare. Atunci când se face acest lucru într-o tranzacție, blocarea X va avea loc pe durata tranzacției. Atunci când tuplu Mover elimină tampoanele de ștergere care se șterg, trebuie să reiterez peste sysrowsets pentru a descoperi tabelele sau indexurile existente. Pentru a citi fiecare rând din sysrowsets , trebuie să dețină un nivel de rând S Lock la intrarea pe care o Citește în prezent. Procesul de descoperire se oprește atunci când tuplu Mover găsește prima rânduri la care poate funcționa. În acest moment, tuplu Mover va face lucrul efectiv de spălare a tamponului de ștergere, dar, pentru a vă asigura că rânduri descoperit este încă valid, acesta va deține o blocare SCH-S pe toate rowsets evaluate în timpul procesului de descoperire, până când își termină lucrul.Sysrowsets este ordonat de ID-ul rânduri, astfel încât să se poată întâmpla ca tuplu Mover să fi scanat mai multe rowsets existente, pe care nu are nicio acțiune de făcut, dar va reține încă blocarea SCH-S și ajunge la o intrare în Sysrowsets pentru care nu poate dobândi blocarea la nivel de rând, deoarece este în prezent alterată de o tranzacție lungă, care deține un X Lock În acest moment, DDLs care implică modificarea ID-ului rânduri sunt blocate în spatele încuietorilor SCH ale tuplu.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.