Tünetek
Vegyük például a következő esetet:
- Nagyon nagy Filestream-táblával rendelkezik.
- Futtathat egy törlő lekérdezést a Filestream tábla soraira, amely költséges lekérdezési tervet hoz létre, például olyat, amelyet egy belső illesztés szűr a rendszer egy másik nagy táblájába.
- A lekérdezésoptimalizáló párhuzamos végrehajtási tervet választ.
Ebben az esetben helyességi feltétel lép fel, és az alábbiakhoz hasonló hibaüzenetek jelenhetnek meg az SQL Server hibanaplójában:
DateTime spid SpidNumber Error: 5553, Severity: 20, State: 6.
DateTime spid SpidNumber SQL Server belső hiba. A FILESTREAM-kezelő nem tudja folytatni az aktuális paranccsal.
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.
Megoldás
A hibát az SQL Server következő összegző frissítéseiben javítottuk:
Az SQL Server összegző frissítéseinek ismertetése:
Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:
Kerülő megoldás
A problémát a következő módszerrel kerülheti meg:
Helyezze át a belső illesztő lekérdezést egy külön utasításba, és az eredményeket mentse egy ideiglenes táblába. Ezután futtassa az ideiglenes tábla bejegyzései alapján szűrt törlő lekérdezést. Emellett megnövelheti a párhuzamosság költségküszöbét, hogy az optimalizáló szerializálja a lekérdezéstervet.
Például:
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
TÖRLÉS A DB.dbo fájlból. [Táblázat] WHERE Alias In (select * FROM #T)
Hivatkozások
Ismerje meg a Microsoft szoftverfrissítésekkel kapcsolatos terminológiáját.