Отнася се за
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2019 on Windows

Симптоми

Да предположим, че имате таблица, която използва ограничението за външни ключове, което е зададено на каскадно изтриване, и статистическите данни за колоната за външни ключове не покриват целия диапазон от ключовите стойности в таблицата (например: тъй като статистическите данни не са актуализирани след промени в таблицата). При този сценарий, когато се опитате да изтриете ред, съответстващ на ключова стойност, която не е представена в хистограмата на статистиката, и оптимизаторът на заявки използва по подразбиране кардиналност, операцията за изтриване е по-ниска от очакваното. Може да забележите, че се използва операция за сканиране на индекс, за да намерите Съвпадащите редове в таблицата за съотнасяне.

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Решение

Този проблем е коригиран в следните сборни актуализации за SQL Server:

Забележка: Тази корекция е разрешена само когато включите в (или чрез опцията за конфигуриране на базата данни опция за конфигурация на заявката или флаг за проследяване 4199).

За сборните актуализации за SQL Server:

Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:

Заобиколно решение

За да решите проблема по заобиколен начин, използвайте един от следните методи:

  • Използвайте оценка на наследени кардинали. За повече информация вижте оценка на кардиналност (SQL Server).

  • Отстранете каскадното изтриване от дефиницията за чужд ключ и извършете операцията за изтриване, като използвате съединение между таблиците родител и наследник, за да постигнете еквивалента на каскадно изтриване.

  • Актуализиране на статистиката в родителската таблица с FULLSCAN преди изтриването на данни.

Препратки

Научете повече за терминологията , която Microsoft използва, за да опише софтуерни актуализации.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.