Belirtiler
Aşağıdaki senaryoyu ele alalım:
- Çok büyük bir Filestream tablonuz var.
- Filestream tablosundaki satırların silme sorgusunu çalıştırırsınız ve bu, sistemdeki başka bir büyük tabloya iç birleştirme tarafından filtrelenen bir plan gibi pahalı bir sorgu planı oluşturur.
- Sorgu iyileştiricisi paralel bir yürütme planı seçer.
Bu senaryoda, bir onaylama gerçekleşir ve SQL ServerSQL Server hata günlüğünde aşağıdakine benzer hata iletileri alabilirsiniz:
DateTime spid SpidNumber Error: 5553, Önem Derecesi: 20, State: 6.
DateTime spid SpidNumber SQL ServerSQL Server internal error. FILESTREAM yöneticisi geçerli komutla devam edemiyor.
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Çözüm
Sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:
SQL Server toplu güncelleştirmeleri hakkında:
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:
Geçici çözüm
Bu soruna geçici bir çözüm olarak aşağıdaki yöntemi kullanabilirsiniz:
İç birleşim sorgusunu ayrı bir deyime taşıma ve sonuçları geçici bir tabloya kaydetme. Ardından geçici tablodaki girdilere göre filtre uygulanan silme sorgusunu çalıştırın. Ayrıca, iyileştiriciyi sorgu planını seri hale getirmeye zorlamak için paralellik maliyet eşiğini artırabilirsiniz.
Örneğin:
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
DB.dbo'DAN SİL. [Tablo] WHERE ALIAS IN (SELECT * FROM #T)
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.