Symptom
Tänk dig följande situation:
-
Du har en väldigt stor FILESTREAM-tabell.
-
Du kör en borttagnings fråga för rader i tabellen FILESTREAM som skapar ett dyrt frågeplan, till exempel ett som är filtrerat efter en inre koppling till en annan stor tabell i systemet.
-
Med Query Optimering väljs ett parallellt körnings abonnemang.
I det här scenariot inträffar enssertion och du kan få fel meddelanden som liknar följande i SQL Server-felloggen:
Datetime SPID SpidNumber -fel: 5553, allvarlighets grad: 20, State: 6.
Internt fel i datetime SPID SpidNumber SQL Server. FILESTREAM Manager kan inte fortsätta med aktuellt kommando.
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".
Lösning
Problemet är åtgärdat i följande kumulativa uppdateringar för SQL Server:
Om kumulativa uppdateringar för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick med föregående Kumulativ uppdatering. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Lösning
To i det här problemet kan y-ou använda följande metod:
Flytta den inre kopplings frågan till en separat instruktion och spara resultatet i en tillfällig tabell. Kör sedan borttagnings frågan som är filtrerad efter posterna i den tillfälliga tabellen. Dessutom kan du öka kostnads tröskeln för parallellitet för att tvinga optimeringen att serialisera frågeuttrycket.
Till exempel:
Välj RefTable. alias INTO #T från DB. dbo. OuterTable INNER JOIN DB. dbo. RefTable ON RefTable. Ali = OuterTable. alias
DÄR OuterTable. alias > 30006 och OuterTable. alias < 30010
TA bort från DB. dbo. Tabell DÄR alias (Välj * från #T)
Referenser
Lär dig mer om terminologin som Microsoft använder för att beskriva program varu uppdateringar.