Príznaky
Predpokladajme, že máte tabuľku s obmedzením cudzieho kľúča nastavenú na kaskádové odstránenie a štatistiky v stĺpci cudzieho kľúča nepokrývajú celý rozsah kľúčových hodnôt v tabuľke (napríklad: pretože štatistiky sa neaktualizovali po zmene rozdelenia údajov do tabuľky). V tomto scenári sa pri pokuse o odstránenie riadka zodpovedajúceho hodnote kľúča, ktorý nie je zastúpený v histograme štatistiky, a pomocou nástroja na optimalizáciu dotazov používa predvolený odhad n. operácia odstránenia je pomalšia, než sa očakávalo. Môžete si všimnúť, že operácia kontroly indexu sa používa na vyhľadanie zhodných riadkov v tabuľke odkazov.
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.
Riešenie
Tento problém je vyriešený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:
Poznámka: Táto oprava je povolená len v prípade, ak zapnete optimalizáciu rýchlych opráv (buď prostredníctvom možnosti konfigurácie rozsahu databázy, náznak dotazu alebo príznak sledovania 4199).
Informácie o kumulatívnych aktualizáciách pre SQL Server:
Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Alternatívne riešenie
Ak chcete obísť tento problém, použite jednu z uvedených metód:
-
Použite odhad starších kardinálov. Ďalšie informácie nájdete v téme odhad kardinálnosti (SQL Server).
-
Odstráňte kaskádové odstránenie z definície cudzieho kľúča a vykonajte operáciu odstránenia pomocou spojenia medzi nadradenými a podriadenými tabuľkami, aby ste mohli vykonať ekvivalent kaskádového odstránenia.
-
Aktualizujte štatistiku nadradenej tabuľky s FULLSCAN pred odstránením údajov.
Odkazy
Oboznámte sa s terminológiou , ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.