KB4577933-remediere: ștergerea în cascadă a valorilor cheie din afara limitelor histogramei de tabel principale determină scanarea indexului în SQL Server 2017 și 2019

Simptome

Să presupunem că aveți un tabel utilizând o restricție de cheie străină setată la ștergere în cascadă, iar statisticile din coloana cheie străină nu acoperă întreaga zonă a valorilor cheie din tabel (de exemplu: deoarece statisticile nu au fost actualizate după modificările de distribuire a datelor din tabel). În acest scenariu, când încercați să ștergeți un rând care corespunde unei valori cheie care nu este reprezentată în histograma statistică, iar Optimizatorul de interogare utilizează estimarea implicită a cardinalității, operațiunea de ștergere este mai mică decât cea așteptată. De asemenea, este posibil să observați că operațiunea de scanare a indexului este utilizată pentru a găsi rândurile care se potrivesc în tabelul referință.

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Rezolvare

Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:

Notă: Această remediere este activată numai atunci când activați remedieri rapide pentru optimizare (fie prin opțiunea de configurare a bazei de date, cu sugestie de interogare, fie cu semnalizatorul de urmărire 4199).

Despre actualizările cumulative pentru 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ă. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Soluție de evitare

Pentru a evita această problemă, utilizați una dintre metodele următoare:

  • Utilizați estimarea moștenirii cardinale. Pentru mai multe informații, consultați estimarea cardinality (SQL Server).

  • Eliminați ștergerea în cascadă din definiția de cheie externă și efectuați operațiunea de ștergere utilizând ASOCIEREa dintre tabelele părinte și fiu pentru a realiza echivalentul ștergerii în cascadă.

  • Actualizați statisticile din tabelul părinte cu FULLSCAN înainte de a șterge date.

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×