Symptomer
Overvej følgende scenarie:
- Du har en meget stor Filestream-tabel.
- Du kører en sletteforespørgsel af rækker i Filestream-tabellen, der opretter en dyr forespørgselsplan, f.eks. en, der filtreres af en indre joinforbindelse til en anden stor tabel i systemet.
- Forespørgselsoptimering vælger en parallel eksekveringsplan.
I dette scenarie forekommer der en assertion, og du modtager muligvis fejlmeddelelser, der ligner følgende i SQL Server-fejlloggen:
DateTime spid SpidNumber Fejl: 5553, Alvorsgrad: 20, Tilstand: 6.
Intern fejl i DateTimespid SQL Server. FILESTREAM Manager kan ikke fortsætte med den aktuelle kommando.
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Løsning
Problemet er rettet i følgende kumulative opdateringer til SQL Server:
Om kumulative opdateringer til SQL Server:
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:
Løsning
Du kan løse dette problem på følgende måde:
Flyt den indre join-forespørgsel til en separat sætning, og gem resultaterne i en midlertidig tabel. Kør derefter sletteforespørgslen, som filtreres efter posterne i den midlertidige tabel. Du kan desuden øge omkostningstærsklen for parallelitet for at tvinge optimeringsfunktionen til at serialisere forespørgselsplanen.
Det kunne f.eks. være:
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. [Tabel] WHERE Alias IN (VÆLG * FRA #T)
Referencer
Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.