Tingkat paralelisme (DOP) umpan balik

Berlaku untuk: SQL Server 2022 (16.x)

SQL Server 2022 (16.x) memperkenalkan fitur baru yang disebut tingkat umpan balik paralelisme (DOP) untuk meningkatkan performa kueri dengan mengidentifikasi inefisiensi paralelisme untuk kueri berulang, berdasarkan waktu dan waktu tunggu yang berlalu. Umpan balik DOP adalah bagian dari keluarga fitur pemrosesan kueri cerdas, dan mengatasi penggunaan paralelisme suboptimal untuk kueri berulang. Skenario ini membantu mengoptimalkan penggunaan sumber daya dan meningkatkan skalabilitas beban kerja, ketika paralelisme yang berlebihan dapat menyebabkan masalah performa.

Alih-alih menimbulkan rasa sakit dari penyesuaian default atau manual yang mencakup semua kueri, umpan balik DOP menyesuaikan diri DOP untuk menghindari masalah ini.

Untuk fitur umpan balik kueri lainnya, lihat Umpan balik pemberian memori dan umpan balik Estimasi Kardinalitas (CE).

Tingkat paralelisme (DOP) umpan balik menghindari kelebihan paralelisme

Alih-alih menimbulkan rasa sakit dari penyesuaian default atau manual yang mencakup semua kueri, umpan balik DOP menyesuaikan dop sendiri untuk menghindari paralelisme berlebih. Jika penggunaan paralelisme dianggap tidak efisien, umpan balik DOP menurunkan DOP untuk eksekusi kueri berikutnya, dari apa pun yang dikonfigurasi DOP, dan memverifikasi apakah itu membantu.

Paralelisme sering bermanfaat untuk kueri pelaporan dan analitik, atau kueri yang menangani data dalam jumlah besar. Sebaliknya, kueri yang berpusat pada OLTP yang dijalankan secara paralel dapat mengalami masalah performa ketika waktu yang dihabiskan untuk mengoordinasikan semua utas melebihi keuntungan menggunakan rencana paralel. Untuk informasi selengkapnya, lihat eksekusi rencana paralel.

  • Untuk mengaktifkan umpan balik DOP, aktifkan DOP_FEEDBACKkonfigurasi cakupan database dalam database.

  • Untuk menonaktifkan umpan balik DOP di tingkat database, gunakan DOP_FEEDBACKkonfigurasi cakupan database. Misalnya, dalam database pengguna:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Untuk menonaktifkan umpan balik DOP di tingkat kueri, gunakan DISABLE_DOP_FEEDBACK petunjuk kueri.

Penyimpanan Kueri harus diaktifkan untuk setiap database tempat umpan balik DOP digunakan, dan dalam status "Baca tulis". Umpan balik akan dipertahankan dalam tampilan katalog sys.query_store_plan_feedback ketika kita mencapai tingkat nilai umpan balik paralelisme yang stabil.

Umpan balik DOP tersedia untuk kueri yang beroperasi di tingkat kompatibilitas database 160 (diperkenalkan dengan SQL Server 2022 (16.x)) atau yang lebih tinggi.

Hanya umpan balik terverifikasi yang bertahan. Jika DOP yang disesuaikan menghasilkan regresi performa, umpan balik DOP akan kembali ke DOP baik terakhir yang diketahui. Dalam konteks ini, kueri yang dibatalkan pengguna juga dianggap sebagai regresi. Umpan balik DOP tidak mengkompilasi ulang rencana.

Umpan balik yang stabil diverifikasi ulang setelah kompilasi ulang paket dan mungkin lebih cepat naik atau turun, tetapi tidak pernah lebih tinggi dari pengaturan MAXDOP (termasuk petunjuk MAXDOP).

Dimulai dengan SQL Server 2022 (16.x), ketika Penyimpanan Kueri untuk replika sekunder diaktifkan, umpan balik DOP juga sadar replika untuk replika sekunder dalam grup ketersediaan. Umpan balik DOP dapat menerapkan umpan balik secara berbeda pada replika utama dan pada replika sekunder. Namun, umpan balik DOP tidak bertahan pada replika sekunder, dan saat failover, umpan balik DOP dari replika utama lama tidak diterapkan ke replika utama baru. Saat failover, umpan balik yang diterapkan ke replika primer atau sekunder hilang. Untuk informasi selengkapnya, lihat Penyimpanan Kueri untuk replika sekunder.

Tingkat implementasi umpan balik paralelisme (DOP)

Tingkat umpan balik paralelisme (DOP) mengidentifikasi inefisiensi paralelisme untuk kueri berulang, berdasarkan waktu dan waktu tunggu yang berlalu. Jika penggunaan paralelisme dianggap tidak efisien, umpan balik DOP akan menurunkan DOP untuk eksekusi kueri berikutnya, dari apa pun yang dikonfigurasi DOP, dan memverifikasi apakah itu membantu.

Untuk menilai kelayakan kueri, waktu yang berlalu kueri yang disesuaikan diukur selama beberapa eksekusi. Total waktu yang berlalu untuk setiap kueri disesuaikan dengan mengabaikan Buffer Latch, Buffer IO, dan Network IO menunggu yang berada di luar eksekusi kueri paralel. Tujuan dari fitur umpan balik DOP adalah untuk meningkatkan konkurensi keseluruhan dan mengurangi penantian secara signifikan, bahkan jika sedikit meningkatkan waktu yang berlalu kueri.

Hanya umpan balik terverifikasi yang bertahan. Jika DOP yang disesuaikan menghasilkan regresi performa, umpan balik DOP akan kembali ke DOP baik terakhir yang diketahui. Dalam konteks ini, kueri yang dibatalkan pengguna juga dianggap sebagai regresi.

Catatan

Umpan balik DOP tidak mengkompilasi ulang rencana.

Tingkat pertimbangan umpan balik paralelisme (DOP)

DOP minimum untuk setiap kueri yang disesuaikan dengan umpan balik DOP adalah 2. Eksekusi serial berada di luar cakupan untuk umpan balik DOP.

Informasi umpan balik dapat dilacak menggunakan tampilan katalog sys.query_store_plan_feedback .

Jika kueri memiliki rencana kueri yang dipaksakan melalui Penyimpanan Kueri, umpan balik DOP masih dapat digunakan untuk kueri tersebut.

Saat ini, Umpan Balik DOP tidak kompatibel dengan petunjuk kueri. Untuk informasi selengkapnya, lihat Petunjuk (Transact-SQL) - Petunjuk Kueri dan Penyimpanan Kueri.

Peristiwa yang diperluas untuk tingkat umpan balik paralelisme (DOP)

XEs berikut tersedia untuk tingkat umpan balik paralelisme (DOP):

  • dop_feedback_eligible_query: Terjadi ketika rencana kueri menjadi memenuhi syarat untuk umpan balik DOP. Peristiwa tambahan mungkin diaktifkan jika terjadi kompilasi ulang atau mulai ulang instans SQL Server.
  • dop_feedback_provided: Terjadi ketika umpan balik DOP memberikan data untuk kueri tertentu. Kejadian ini berisi statistik dasar ketika umpan balik diberikan untuk pertama kalinya dan statistik umpan balik sebelumnya ketika umpan balik berikutnya diberikan.
  • dop_feedback_validation: Terjadi ketika validasi terjadi untuk statistik runtime kueri terhadap garis besar atau statistik umpan balik sebelumnya.
  • dop_feedback_stabilized: Terjadi ketika umpan balik DOP distabilkan untuk kueri.
  • dop_feedback_reverted: Terjadi ketika umpan balik DOP dikembalikan. Peristiwa diaktifkan ketika validasi umpan balik gagal pada umpan balik pertama yang diberikan. Sistem akan kembali ke status tanpa umpan balik.
  • dop_feedback_analysis_stopped : Terjadi ketika analisis umpan balik DOP dihentikan untuk kueri.

Persistensi untuk tingkat paralelisme (DOP) umpan balik

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2022 (16.x))

Jika mekanisme umpan balik DOP menemukan bahwa tingkat paralelisme baru baik, pengoptimalan ini bertahan di dalam penyimpanan kueri dan akan diterapkan dengan tepat ke kueri untuk eksekusi di masa mendatang.

Fitur ini diperkenalkan di SQL Server 2022 (16.x), dan tersedia untuk kueri yang beroperasi dalam tingkat kompatibilitas database 160 atau lebih tinggi, atau QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n petunjuk 160 dan yang lebih tinggi, dan ketika Penyimpanan Kueri diaktifkan untuk database dan berada dalam status "baca tulis".