Znaki
Oglejte si ta scenarij:
- Imate zelo veliko tabelo datotečnega toka.
- Zaženete poizvedbo za brisanje vrstic v tabeli datotečnega toka, s čimer ustvarite drag načrt poizvedbe, kot je na primer načrt, ki je filtriran z notranjim združevanjem z drugo veliko tabelo v sistemu.
- Optimizator poizvedbe izbere načrt vzporednega izvajanja.
V tem scenariju bo prišlo do izjave in morda boste prejeli sporočila o napakah, podobna tem v dnevniku napak strežnika SQL Server:
DateTime spid SpidNumber Error: 5553, Resnost: 20, State: 6.
DateTime: spid SpidNumber SQL Server notranja napaka. Upravitelj FILESTREAM ne more nadaljevati s trenutnim ukazom.
Stanje
Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.
Rešitev
Težava je odpravljena v naslednjih zbirnih posodobitvah za SQL Server:
O zbirnih posodobitvah za SQL Server:
Vsaka nova zbirna posodobitev za SQL Server vsebuje vse sprotne in varnostne popravke, ki so bili vključeni v prejšnjo zbirno posodobitev. Oglejte si najnovejše zbirne posodobitve za SQL Server:
Rešitev
Če želite odpraviti to težavo, uporabite ta način:
Premaknite notranjo poizvedbo za združevanje v ločeno izjavo in shranite rezultate v začasno tabelo. Nato zaženite poizvedbo za brisanje, ki je filtrirana po vnosih v začasni tabeli. Poleg tega lahko povečate prag stroškov za vzporednost in tako prisilite optimizator, da serializira načrt poizvedbe.
Primer:
SELECT RefTable.Alias INTO #T FROM DB.dbo.OuterTable NOTRANJI STIK DB.dbo.RefTable ON RefTable.Alias = OuterTable.Alias
WHERE OuterTable.Alias > 30006 AND OuterTable.Alias < 30010
IZBRIŠI IZ DB.dbo. [Tabela] VZDEVEK WHERE IN (IZBERITE * IZ #T)
Sklici
Preberite več o terminologiji, ki jo Microsoft uporablja za opisovanje posodobitev programske opreme.