Gejala
Ketika Anda mengkueri tampilan di Microsoft SQL Server 2014 atau 2016, mungkin perlu waktu lebih lama untuk menyelesaikannya jika Anda membandingkannya dengan eksekusi di SQL Server 2008 R2.
Saat menjalankan kueri yang menggunakan UNION ALL dan target baris (seperti klausa TOP N, FAST N, atau predikat EXISTS), Anda mungkin melihat bahwa kueri berjalan lebih lambat di SQL Server 2014 atau versi yang lebih baru jika dibandingkan dengan SQL Server 2008 R2.
Penyebab
Di SQL Server 2008 R2, Pengoptimal Kueri mengubah urutan bagian yang berbeda di bawah UNION ALL jika tujuan baris ada, sehingga bagian termurah didahulukan. Hal ini memungkinkan kueri menyelesaikan eksekusi lebih awal jika suku cadang yang lebih murah menghasilkan jumlah baris yang diperlukan, tanpa terus mengeksekusi bagian yang lebih mahal. Pengurutan ulang semacam itu tidak terjadi di versi SQL Server yang lebih baru.
Resolusi
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:
Pembaruan Kumulatif 7 untuk SQL Server 2016 RTM
Pembaruan Kumulatif 4 untuk SQL Server 2016 SP1
Pembaruan Kumulatif 6 untuk SQL Server 2014 SP2
catatan Pengoptimal Kueri harus diaktifkan untuk masalah ini.
Untuk informasi selengkapnya tentang pengoptimal kueri dan bendera pelacakan, lihat tautan berikut:
Hotfix SQL Server Query Optimizer model pelayanan TF 4199
Perintah konsol DBCC dan bendera Lacak
Tentang pembaruan kumulatif untuk SQL Server:
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
Pembaruan kumulatif terbaru untuk SQL Server 2014
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.