KB974006-SQL Server query Optimizer bendera pelacakan bendera Layanan 4199

Berlaku untuk: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Enterprise EditionMicrosoft SQL Server 2005 Standard X64 Edition

PENDAHULUAN


Versi Microsoft SQL Server yang lebih lama dari SQL Server 2000 Service Pack 3 (SP3) mengirimkan sebagian besar hotfix ke Pengoptimal kueri dalam status nonaktif-per-default untuk mencegah pelanggan produksi yang sudah ada melihat perubahan rencana yang diharapkan yang bisa menyebabkan kemunduran kinerja. Pada awalnya, setiap hotfix disampaikan di bawah bendera pelacakan terpisah. Selanjutnya, praktik ini diubah sehingga sebagian besar bendera digabungkan di bawah bendera pelacakan tunggal (4199). Praktik baru ini dimulai di beberapa versi yang dimulai dengan pembaruan berikut ini:
  • Pembaruan kumulatif SQL Server 2005 Service Pack 3 (SP3) 6
  • Paket pembaruan kumulatif SQL Server 2008 Service Pack 1 (SP1) 7
  • SQL Server 2008 R2 (RTM)
Bendera pelacakan 4199 digunakan untuk mengumpulkan hotfix yang dimaksudkan untuk menjadi secara otomatis dalam rilis mendatang, sedangkan bendera pelacakan lainnya digunakan untuk situasi di mana perbaikan tidak dimaksudkan untuk menjadi default dalam formulir saat ini. Mulai dengan SQL Server 2016 RTM, pengaturan COMPATIBILITY_LEVEL database akan digunakan mengaktifkan pelacakan bendera 4199-terkait hotfix secara otomatis. Artikel ini menguraikan mekanika dan kebijakan bagaimana perbaikan yang mempengaruhi paket akan dikirimkan untuk SQL Server 2016 dan versi yang lebih baru.

Informasi Selengkapnya


Di SQL Server 2016, bendera pelacakan 4199 hotfix yang dibuat untuk rilis SQL Server sebelumnya akan menjadi diaktifkan di bawah database COMPATIBILITY_LEVEL 130 tanpa bendera pelacakan 4199 diaktifkan. Bendera pelacakan 4199 akan digunakan untuk melepaskan setiap hotfix SQL Server 2016 mendatang untuk database dengan menggunakan tingkat kompatibilitas 130. Karena bendera pelacakan 4199 direkomendasikan hanya untuk pelanggan yang melihat masalah kinerja tertentu, pelanggan disarankan untuk menghapus bendera pelacakan 4199 setelah mereka melakukan migrasi database ke tingkat kompatibilitas terbaru karena bendera pelacakan 4199 akan digunakan kembali untuk perbaikan mendatang yang mungkin tidak berlaku untuk aplikasi Anda dan dapat menyebabkan perubahan kinerja yang tidak terduga pada sistem produksi. Ini berarti bahwa berbeda bendera pelacakan 4199 hotfix diaktifkan untuk setiap tingkat kompatibilitas yang didukung dalam rilis produk tertentu. Tingkat kompatibilitas terbaru T sudah memungkinkan semua perbaikan sebelumnya di bawah bendera pelacakan 4199. Ini berarti pemutakhiran database ke tingkat kompatibilitas terbaru dan menghapus bendera pelacakan 4199 masih mengaktifkan semua perbaikan yang digunakan beban kerja sebelum pemutakhiran database, hanya perbaikan baru. Jika nanti pelanggan mengalami masalah kinerja kueri, percobaan dengan mengaktifkan opsi database scophe QUERY_OPTIMIZER_HOTFIXES atau petunjuk kueri ENABLE_QUERY_OPTIMIZER_HOTFIXES dalam lingkungan uji untuk menentukan apakah masalah telah diatasi. Rujuk ke dokumentasi tentang QUERY_OPTIMIZER_HOTFIXES

Catatan Secara default, database yang dibuat di SQL Server 2016 menggunakan kompatibilitas tingkat 130 dan memiliki logika Optimizer baru telah diaktifkan.Keuntungan utama dari model ini adalah mengurangi risiko untuk sistem produksi selama proses pemutakhiran. Pendekatan ini memisahkan instalasi versi utama baru SQL Server dari pengaktifan otomatis semua perubahan prosesor kueri baru. Karena pemutakhiran versi utama mengubah format file dan tidak reversibel, sebaiknya gunakan pengaturan COMPATIBILITY_LEVEL, karena ini memungkinkan pelanggan untuk menurunkan dengan cepat jika masalah kinerja paket yang tidak diharapkan ditemukan selama pemutakhiran. Jika pelanggan menemukan rencana yang tidak diharapkan yang memblokir pemutakhiran aplikasi, pelanggan dapat mengurangi situasi dengan menerapkan petunjuk rencana yang sesuai dengan menggunakan penyimpanan kueri untuk memaksa rencana sebelumnya, atau dapat mengurangi situasi dengan menghubungi dukungan pelanggan Microsoft untuk membantu masalah tersebut guna menyediakan solusi atau perbaikan terbaru. Saat semua masalah berkurang, pemutakhiran dapat dilanjutkan. Pelanggan harus mengintegrasikan kapabilitas ini ke dalam perencanaan pemutakhiran untuk SQL Server 2016.Tabel berikut ini menjelaskan model untuk bagaimana bendera pelacakan 4199 akan bekerja dimulai dengan SQL Server 2016.

Imbangan Tingkat kompatibilitas SQL Bendera pelacakan 4199 Pengoptimal hotfix sebelum SQL Server 2016 RTM Pengoptimal hotfix setelah SQL Server 2016 RTM
,1. 120 Turun Dinonaktifkan Dinonaktifkan
2. 120 Dalam Membolehkan Dinonaktifkan
3. 130 Turun Diaktifkan dengan tingkat kompatibilitas Dinonaktifkan
empat. 130 Dalam Diaktifkan dengan tingkat kompatibilitas Diaktifkan dengan tingkat kompatibilitas

Catatan Pengaturan No. 3 direkomendasikan untuk pelanggan yang baru pemutakhiran ke SQL Server 2016.Untuk rilis utama setelah SQL Server 2016, Microsoft berencana untuk melanjutkan menggunakan model layanan ini untuk Pengoptimal hotfix. Secara default, atau setiap rilis, setiap kesalahan bendera pelacakan 4199 dari rilis sebelumnya akan diaktifkan di tingkat kompatibilitas berikutnya. Ini berarti bahwa status yang direkomendasikan untuk pelanggan setelah migrasi ke tingkat kompatibilitas terbaru akan memiliki bendera pelacakan 4199 dinonaktifkan. Hotfix yang lebih baru akan menggunakan bendera pelacakan 4199 untuk mengaktifkan perbaikan bagi pelanggan yang harus mengaktifkan hotfix tertentu tersebut dalam aplikasi. Pelanggan disarankan untuk menonaktifkan bendera pelacakan 4199 setelah aplikasi dimutakhirkan ke tingkat kompatibilitas terbaru untuk menghindari perubahan yang tidak diharapkan di masa mendatang Optimizer diaktifkan pada aplikasi tiba-tiba. Yang memutakhirkan ke tingkat kompatibilitas terbaru dan menghapus bendera pelacakan 4199 masih mengaktifkan semua perbaikan yang telah diungkit oleh beban kerja sebelum pemutakhiran, hanya perbaikan baru.

Catatan Sementara banyak Pengoptimal hotfix diaktifkan di bawah bendera pelacakan 4199, beberapa menggunakan bendera pelacakan lainnya. Bendera pelacakan 4199 bendera pelacakan yang tertutup secara historis yang secara luas berlaku dan mungkin menjadi diaktifkan secara default dalam rilis mendatang. Bendera pelacakan alternatif digunakan dalam hotfix di mana kondisi sangat khusus untuk hanya beberapa pelanggan, di mana perbaikan mungkin menyebabkan kemunduran kinerja dalam jenis aplikasi lainnya, atau di mana fungsi internal mungkin melihat perubahan sebelum siap untuk diaktifkan untuk semua orang. Microsoft akan terus menggunakan bendera pelacakan lain sebagaimana diperlukan untuk melayani produk.Catatan Artikel ini berfokus pada model untuk melepaskan 4199 bendera pelacakan hotfix pada tingkat kompatibilitas terbaru dari produk terbaru. (Pada waktu publikasi, ini adalah SQL Server 2016.) Pengoptimal hotfix mungkin akan dirilis pada versi yang lebih lama di pasar SQL Server atau tingkat kompatibilitas yang lebih rendah (120 atau sebelum) SQL Server 2016. Microsoft akan mengevaluasi setiap kasus dan menentukan apakah menggunakan bendera pelacakan 4199 atau bendera pelacakan yang berbeda. Karena perubahan non-hotfix juga diaktifkan saat pemindahan dilakukan pada tingkat kompatibilitas yang lebih baru, tidak ada janji khusus bahwa tidak ada perubahan rencana yang akan terjadi selama pemutakhiran (dengan atau tanpa bendera pelacakan 4199). Pelanggan harus selalu menguji perubahan pada tingkat kompatibilitas secara saksama untuk aplikasi produksi dan harus menggunakan teknologi mitigasi, seperti penyimpanan kueri, jika terdapat masalah kinerja yang terkait dengan rencana.Untuk referensi, tabel berikut mencantumkan bendera pelacakan yang digunakan untuk perbaikan prosesor kueri sebelum pengenalan bendera pelacakan 4199.

Artikel Pangkalan Pengetahuan Microsoft Bendera pelacakan
318530 4101
940128 4102
919905 4103
920346 4104
920347 4105
922438 4106
923849 4107
926024 4108
926773 4109
933724 4110
934065 4111
946793 4115
950880 4116
948445 4117
942659 4119
953948 4120
942444 4121
946020 4122
948248 4124
949854 4125
959013 4126
953569 4127
955694 957872 4128
958547 4129
956686 4131
958006 4133
960770 4135*

SQL Server 2005

Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 6 untuk SQL Server 2005 Service Pack 3. Untuk informasi selengkapnya tentang paket pembaruan kumulatif ini, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
974648 Paket pembaruan kumulatif 6 untuk SQL Server 2005 Service Pack 3
Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2005 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
960598 Build 2005 SQL Server yang dirilis setelah SQL Server 2005 Service Pack 3 dirilis
Hotfix Microsoft SQL Server 2005 dibuat untuk paket layanan SQL Server tertentu. Anda harus menerapkan perbaikan terbaru SQL Server 2005 Service Pack 3 ke instalasi SQL Server 2005 Service Pack 3. Secara default, setiap hotfix yang disediakan dalam paket layanan SQL Server disertakan dalam paket layanan SQL Server berikutnya.

SQL Server 2008

Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 7. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2008, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
973601 Paket pembaruan kumulatif 7 untuk SQL Server 2008
Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2008 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
956909 Build 2008 SQL Server yang dirilis setelah SQL Server 2008 dirilis

SQL Server 2008 SP1

Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 7 untuk SQL Server 2008 Service Pack 1. Untuk informasi selengkapnya tentang paket pembaruan kumulatif ini, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
979065 Paket pembaruan kumulatif 7 untuk SQL Server 2008 Service Pack 1
Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2008 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
970365 Build 2008 SQL Server yang dirilis setelah SQL Server 2008 Service Pack 1 dirilis
Hotfix Microsoft SQL Server 2008 dibuat untuk paket layanan SQL Server tertentu. Anda harus menerapkan perbaikan terbaru SQL Server 2008 Service Pack 1 ke instalasi SQL Server 2008 Service Pack 1. Secara default, setiap hotfix yang disediakan dalam paket layanan SQL Server disertakan dalam paket layanan SQL Server berikutnya.

SQL Server 2008 R2

Dalam versi rilis SQL Server 2008 R2, bendera pelacakan 4135 tidak sengaja dihilangkan dari Daftar bendera pelacakan yang bisa dikontrol oleh-T4199. Namun, ini telah diperbaiki dalam pembaruan kumulatif 1 untuk SQL Server 2008 R2. Jadi, untuk Build ini dan untuk SQL Server 2005 dan SQL Server 2008 edisi yang didukung,-T4199 akan cukup untuk mengaktifkan bendera pelacakan ini dan lainnya yang tercantum dalam artikel ini.

SQL Server 2012 dan versi yang lebih baru

Bendera pelacakan 4199 disertakan dalam versi rilis SQL Server 2012 dan versi yang lebih baru.

Cara mengaktifkan bendera pelacakan 4199

Anda dapat mengaktifkan bendera pelacakan 4199 pada startup atau dalam sesi pengguna. Bendera pelacakan ini memiliki efek tingkat global atau tingkat sesi. Untuk mengaktifkan bendera pelacakan 4199, gunakan perintah DBCC TRACEON atau gunakan – T 4199 sebagai parameter permulaan. Jika DBCC TRACEON\TRACEOFF digunakan ini tidak akan membuat ulang paket singgahan baru untuk prosedur yang disimpan. Paket dapat berada dalam singgahan yang dibuat tanpa bendera pelacakan. Untuk informasi mendetail tentang cara mengaktifkan atau menonaktifkan bendera pelacakan dan untuk penjelasan bendera pelacakan tingkat sesi dan global, lihat topik berikut ini di buku daring SQL Server:

Referensi


Untuk informasi selengkapnya tentang skema penamaan untuk pembaruan SQL Server, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
822499 Skema penamaan baru untuk paket pembaruan perangkat lunak Microsoft SQL Server
Untuk informasi selengkapnya tentang terminologi pembaruan perangkat lunak, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
824684 Deskripsi tentang terminologi standar yang digunakan untuk menjelaskan pembaruan perangkat lunak Microsoft