Gejala
Pertimbangkan skenario berikut:
-
Anda memiliki tabel FileStream yang sangat besar.
-
Anda menjalankan kueri penghapusan baris dalam tabel FileStream yang membuat rencana kueri yang mahal, seperti yang difilter oleh gabungan dalam ke tabel besar lainnya dalam sistem.
-
Pengoptimal kueri memilih paket eksekusi paralel.
Dalam skenario ini,ssertion akan terjadi, dan Anda mungkin menerima pesan kesalahan yang menyerupai yang berikut ini dalam log kesalahan SQL Server:
Tanggal waktu SPID galat spidnumber : 5553, kerumitan: 20, status: 6.
Tanggal waktu SPID galat SQL Server SQL Server. Manajer FILESTREAM tidak dapat melanjutkan dengan perintah saat ini.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Pemecahan Masalah
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut ini untuk SQL Server:
Tentang pembaruan kumulatif untuk SQL Server:
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan sebelumnya pembaruan kumulatif. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Penyelesaian Masalah
To mengatasi masalah ini, you dapat menggunakan metode berikut ini:
Memindahkan kueri Inner Join ke pernyataan terpisah dan menyimpan hasilnya ke tabel sementara. Lalu jalankan kueri penghapusan yang difilter menurut entri dalam tabel sementara. Selain itu, Anda bisa menambah ambang batas biaya untuk paralelisme untuk memaksa Pengoptimal untuk membuat rencana kueri.
Misalnya:
Pilih RefTable. alias ke dalam #T dari DB. DBO. OuterTable INNER JOIN DB. DBO. RefTable pada RefTable. alias = OuterTable. alias
Di mana OuterTable. alias > 30006 dan OuterTable. alias < 30010
Hapus dari DB. DBO. Tabel TEMPAT alias dalam (pilih * dari #T)
Referensi
Pelajari tentang terminologi yang Microsoft menggunakan untuk menjelaskan pembaruan perangkat lunak.