Gejala
Pertimbangkan skenario berikut:
-
Anda menggunakan database dengan tingkat kompatibilitas yang diatur ke 130 di Microsoft SQL Server 2016.
-
Anda menjalankan kueri yang mengakses indeks penyimpanan kolom dan indeks penyimpanan baris atau tumpukan, dan menyertakan predikat filter (klausul WHERE).
Dalam skenario ini, SQL Server tidak akan dapat mendekatkan predikat filter ke operator sumber data (tabel atau pemindaian indeks atau pencarian). Hal ini dapat menyebabkan kinerja kueri suboptimal.
Selain itu, jika kueri menggunakan ekspresi (seperti konversi tipe) di mana koreksinya bergantung pada data yang difilter (misalnya, kolom tabel char dikonversi menjadi int, tetapi hanya subkumpulan nilai yang berisi representasi tinta yang valid, dan subset ini diidentifikasi oleh predikat filter), maka kueri mungkin gagal dengan kesalahan konversi data yang menyerupai salah satu hal berikut ini:
Msg 245, Tingkat 16, Negara Bagian 1, Konversi Baris 20
gagal ketika mengonversi nilai varchar '0,5' ke int tipe data.
Msg 8114, Tingkat 16, Negara Bagian 5, Baris 34
Kesalahan mengonversi varchar tipe data ke bigint.
Pemecahan Masalah
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut ini untuk SQL Server:
Pembaruan Kumulatif 2 untuk SQL Server 2016 SP1
Catatan Anda harus mengaktifkan hotfix pengoptimal kueri agar perbaikan ini dapat diterapkan.
Anda dapat mengaktifkan hotfix pengoptimal kueri dengan menggunakan salah satu opsi berikut: lacak bendera 4199, pengaturan Konfigurasi Lingkup Database QUERY_OPTIMIZER_HOTFIXES=ON (tersedia di SQL Server 2016 dan yang lebih baru), atau opsi kueri USE_HINT 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' (tersedia di SQL Server 2016 SP1 dan yang lebih baru).
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Pembaruan kumulatif terbaru untuk SQL Server 2016
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologiyang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.