Symptomer
Tenk deg følgende:
- Du har en svært stor Filestream-tabell.
- Du kjører en slettespørring for rader i Filestream-tabellen som oppretter en kostbar spørringsplan, for eksempel en som er filtrert av en indre kobling til en annen stor tabell i systemet.
- Spørringsoptimaliseringen velger en plan for parallell utførelse.
I dette scenariet oppstår det en deklarasjon, og du kan få feilmeldinger som ligner på det følgende i SQL Server-feilloggen:
DateTime spid SpidNumber Error: 5553, Alvorsgrad: 20, Tilstand: 6.
DateTime spid SpidNumber SQL Server intern feil. FILESTREAM-behandling kan ikke fortsette med gjeldende kommando.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen «Gjelder for».
Oppløsning
Problemet er løst i følgende kumulative oppdateringer for SQL Server:
Om kumulative oppdateringer for SQL Server:
Hver nye kumulative oppdatering for SQL Server inneholder alle hurtigreparasjoner og alle sikkerhetsrettinger som fulgte med den forrige kumulative oppdateringen. Ta en titt på de nyeste kumulative oppdateringene for SQL Server:
Midlertidig løsning
Du kan omgå dette problemet ved å bruke følgende metode:
Flytt den indre sammenføyningsspørringen til en egen setning, og lagre resultatene i en midlertidig tabell. Kjør deretter slettespørringen som er filtrert etter oppføringene i den midlertidige tabellen. I tillegg kan du øke kostnadsterskelen for parallellitet for å tvinge optimaliseringsverktøyet til å serialisere spørringsplanen.
Eksempel:
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
SLETT FRA DB.dbo. [Tabell] WHERE-alias I (VELG * FRA #T)
Kilder
Finn ut mer om terminologien som Microsoft bruker til å beskrive programvareoppdateringer.