Príznaky
Zoberme si nasledujúcu situáciu:
-
Máte veľmi veľkú tabuľku FILESTREAM.
-
Spustíte odstraňovací dotaz riadkov v tabuľke FILESTREAM, ktorá vytvára drahý plán dotazov, ako napríklad ten, ktorý je filtrovaný vnútorným spojením do inej veľkej tabuľky v systéme.
-
Pomocou nástroja na optimalizáciu dotazov sa vyberie plán paralelného vykonávania.
V tomto scenárisa vyskytne ssertion a v denníku chýb servera SQL Server sa môžu zobraziť chybové hlásenia, ktoré sa podobajú takto:
DateTime SPID SpidNumber error: 5553, závažnosť: 20, stav: 6.
DateTime SPID SpidNumber SQL Server Internal error. Správca FILESTREAM nemôže pokračovať v aktuálnom príkaze.
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:
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ýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho Kumulatívna aktualizácia. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Alternatívne riešenie
To tento problém obísť, môže you použiť nasledujúcu metódu:
Premiestnite dotaz Inner JOIN do samostatného výkazu a výsledky uložte do dočasnej tabuľky. Potom spustite odstraňovací dotaz, ktorý je filtrovaný podľa položiek v dočasnej tabuľke. Okrem toho môžete zvýšiť prahovú hodnotu nákladov na rovnobežnosť a vynútiť optimalizáciu na serializáciu plánu dotazu.
Príklad:
Vyberte položku RefTable. alias do #T z databázy DB. dbo. OuterTable INNER JOIN DB. dbo. RefTable na RefTable. alias = OuterTable. alias
KDE OuterTable. alias > 30006 a OuterTable. alias < 30010
ODSTRÁNIŤ z databázy DB. dbo. Tabuľky UMIESTNENIE aliasu (vyberte * z #T)
Odkazy
Oboznámte sa s terminológiou , ktorá Spoločnosť Microsoft používa na popis aktualizácií softvéru.