KB4488809 – OPRAVA: Tvrdenie sa vyskytuje pri odstránení paralelného dotazu z tabuľky Filestream v SQL Server 2014, 2016 a 2017

Vzťahuje sa na
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Príznaky

Pozrite si nasledujúci scenár:

  • Máte veľmi veľkú tabuľku Filestream.
  • Spustíte odstraňovací dotaz z riadkov v tabuľke Filestream, ktorý vytvorí nákladný plán dotazov, napríklad plán filtrovaný vnútorným spojením s inou veľkou tabuľkou v systéme.
  • Optimalizátor dotazov vyberie plán paralelného vykonávania.

V tomto scenári sa vyskytne tvrdenie a môžu sa zobraziť chybové hlásenia podobné nasledujúcemu v denníku chýb SQL Server:

DateTime spid SpidNumber Error: 5553, Závažnosť: 20, Stav: 6.

Dátum a čas, spid, SpidNumber vnútorná chyba SQL Server. Správca prúdu súborov nemôže pokračovať s aktuálnym príkazom.
      

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Riešenie

Tento problém je opravený 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 opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:

Alternatívne riešenie

Ak chcete obísť tento problém, môžete použiť nasledujúcu metódu:

Presunie dotaz inner join do samostatného príkazu a výsledky uloží 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 pre rovnobežnosť, aby optimalizátor donútil serializovať plán dotazu.

Príklad:

SELECT RefTable.Alias INTO #T FROM DB.dbo.OuterTable INNER JOIN DB.dbo.RefTable ON RefTable.Alias = OuterTable.Alias

WHERE OuterTable.Alias > 30006 AND OuterTable.Alias < 30010

DELETE FROM DB.dbo. [Tabuľka] WHERE ALAS (VYBRAŤ * Z #T)

Odkazy

Získajte informácie o terminológii, ktorú Microsoft používa na popis aktualizácií softvéru.