Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi ke:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL dalam database Microsoft Fabric
Keluarga fitur pemrosesan kueri cerdas (IQP) mencakup fitur dengan dampak luas yang meningkatkan performa beban kerja yang ada dengan upaya implementasi minimal untuk diadopsi. Grafik berikut merinci keluarga fitur IQP dan kapan pertama kali diperkenalkan untuk SQL Server. Semua fitur IQP tersedia dalam Azure SQL Managed Instance dan Azure SQL Database. Beberapa fitur bergantung pada tingkat kompatibilitas database.
Tonton video ini untuk gambaran umum pemrosesan kueri cerdas:
Untuk demo dan kode sampel fitur pemrosesan kueri cerdas (IQP), lihat repositori sampel GitHub.
Anda dapat membuat beban kerja memenuhi syarat secara otomatis untuk pemrosesan kueri cerdas dengan mengaktifkan tingkat kompatibilitas database yang berlaku untuk database. Anda dapat mengatur ini menggunakan Transact-SQL. Contohnya:
ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 170;
Tabel berikut merinci semua fitur pemrosesan kueri cerdas, bersama dengan persyaratan apa pun yang mereka miliki untuk tingkat kompatibilitas database. Untuk detail lengkap tentang semua fitur IQP, termasuk catatan rilis dan deskripsi yang lebih mendalam, lihat Fitur pemrosesan kueri cerdas secara rinci.
Fitur IQP untuk Azure SQL Database dan SQL Server 2025
| Fitur IQP | Didukung dalam Azure SQL Database | Didukung pada SQL Server 2025 (17.x) | Description |
|---|---|---|---|
| Pengoptimalan rencana parameter opsional (OPPO) | Ya, dimulai dengan tingkat kompatibilitas database 170 | Ya, dimulai dengan SQL Server 2025 (17.x) dengan tingkat kompatibilitas database 170 | Memanfaatkan infrastruktur pengoptimalan rencana adaptif (Multiplan) yang diperkenalkan bersamaan dengan peningkatan Pengoptimalan Rencana Sensitif Parameter (PSPO), yang memungkinkan dihasilkannya beberapa rencana dari satu pernyataan. Fitur ini dapat memilih rencana yang lebih optimal saat runtime berdasarkan apakah parameter adalah NULL OR NOT NULL, yang meningkatkan performa untuk kueri yang sebaliknya mungkin akan default ke performa suboptimal untuk pola kueri tersebut. |
| Umpan balik estimasi kardinalitas (CE) untuk ekspresi | Ya, dimulai dengan tingkat kompatibilitas database 170 | Ya, dimulai dengan SQL Server 2025 (17.x) dengan tingkat kompatibilitas database 160 | Memperluas umpan balik CE untuk meningkatkan perkiraan kardinalitas untuk mengulangi ekspresi di seluruh kueri dengan belajar dari eksekusi sebelumnya dan secara otomatis menerapkan pilihan model CE yang sesuai ke eksekusi ekspresi tersebut di masa mendatang. |
| OPTIMIZED_SP_EXECUTESQL | Yes | Ya, dimulai dengan SQL Server 2025 (17.x) | Mengurangi dampak badai kompilasi secara efektif. Badai kompilasi adalah situasi di mana sejumlah besar kueri sedang dikompilasi secara bersamaan, yang mengarah ke masalah performa dan kontensi sumber daya. Aktifkan fitur ini untuk memungkinkan pemanggilan sp_executesql berperilaku seperti objek seperti prosedur tersimpan dan pemicu dari perspektif kompilasi. |
Fitur IQP untuk Azure SQL Database dan SQL Server 2022
| Fitur IQP | Didukung dalam Azure SQL Database | Didukung di SQL Server 2022 (16.x) dan versi yang lebih baru | Description |
|---|---|---|---|
| Adaptif Gabungan (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Ya, mulai SQL Server 2017 (14.x) dengan tingkat kompatibilitas database 140 | Gabungan adaptif secara dinamis memilih jenis gabungan selama runtime berdasarkan baris input aktual. |
| Perkiraan Hitungan Berbeda | Yes | Ya, mulai SQL Server 2019 (15.x) | Berikan perkiraan COUNT DISTINCT untuk skenario big data dengan manfaat performa tinggi dan jejak memori yang rendah. |
| Perkiraan Persentil | Ya, dimulai dengan tingkat kompatibilitas database 110 | Ya, mulai SQL Server 2022 (16.x) dengan tingkat kompatibilitas 110 | Komputasi persentil dengan cepat untuk himpunan data besar dengan batas kesalahan berbasis peringkat yang dapat diterima untuk membantu membuat keputusan cepat dengan menggunakan perkiraan fungsi agregat persentil. |
| Mode Batch pada Rowstore | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai SQL Server 2019 (15.x) dengan tingkat kompatibilitas 150 | Berikan mode batch untuk beban kerja DW relasional terikat CPU tanpa memerlukan indeks penyimpan kolom. |
| Umpan balik estimasi kardinalitas (CE) | Ya, dimulai dengan tingkat kompatibilitas database 160 | Ya, mulai SQL Server 2022 (16.x) dengan tingkat kompatibilitas 160 | Secara otomatis menyesuaikan perkiraan kardinalitas untuk kueri berulang untuk mengoptimalkan beban kerja di mana asumsi CE yang tidak efisien menyebabkan performa kueri yang buruk. Umpan balik CE akan mengidentifikasi dan menggunakan asumsi model yang lebih sesuai dengan kueri dan distribusi data tertentu untuk meningkatkan kualitas rencana eksekusi kueri. |
| Tingkat paralelisme (DOP) umpan balik | Ya, dimulai dengan tingkat kompatibilitas database 160 | Ya, dimulai dengan tingkat kompatibilitas database 160 | Secara otomatis menyesuaikan tingkat paralelisme untuk mengulangi kueri untuk mengoptimalkan beban kerja di mana paralelisme yang tidak efisien dapat menyebabkan masalah performa. Diwajibkan agar Query Store diaktifkan. |
| Eksekusi Interleaved | Ya, dimulai dengan tingkat kompatibilitas database 140 | Ya, mulai SQL Server 2017 (14.x) dengan tingkat kompatibilitas database 140 | Menggunakan kardinalitas aktual dari fungsi bernilai tabel multi-pernyataan yang ditemui pada kompilasi pertama alih-alih tebakan tetap. |
| Umpan balik alokasi memori (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Ya, mulai SQL Server 2017 (14.x) dengan tingkat kompatibilitas database 140 | Jika kueri mode batch memiliki operasi yang meluap ke disk, tambahkan lebih banyak memori untuk eksekusi berturut-turut. Jika kueri membuang > 50% memori yang dialokasikan untuk itu, kurangi ukuran pemberian memori untuk eksekusi berturut-turut. |
| Umpan balik alokasi memori (Mode Baris) | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai SQL Server 2019 (15.x) dengan tingkat kompatibilitas database 150 | Jika kueri dalam mode baris memiliki operasi yang meluap ke disk, alokasikan lebih banyak memori dalam eksekusi berikutnya. Jika kueri membuang > 50% memori yang dialokasikan untuk itu, kurangi ukuran pemberian memori untuk eksekusi berturut-turut. |
| Umpan balik pengalokasian memori (Persentil) | Ya, diaktifkan di semua database | Ya, dimulai dengan SQL Server 2022 (16.x)) dengan tingkat kompatibilitas database 140 | Mengatasi batasan umpan balik pemberian memori yang ada dengan cara yang tidak mengganggu dengan menggabungkan eksekusi kueri sebelumnya untuk menyempurnakan umpan balik. |
| Persistensi umpan balik Peruntukan Memori | Ya, diaktifkan di semua database | Ya, dimulai dengan SQL Server 2022 (16.x)) dengan tingkat kompatibilitas database 140 | Menyediakan fungsionalitas baru untuk menyimpan umpan balik pemberian memori. Mengharuskan Query Store diaktifkan untuk database dan dalam mode READ_WRITE. |
| Persistensi umpan balik CE | Ya, dimulai dengan tingkat kompatibilitas database 160 | Ya, dimulai dengan SQL Server 2022 (16.x)) dengan tingkat kompatibilitas database 160 | Mengharuskan Query Store diaktifkan untuk database dan dalam mode READ_WRITE. |
| Paksaan rencana yang dioptimalkan dengan Query Store | Yes | Ya, dimulai dengan SQL Server 2022 (16.x)). | Mengurangi overhead kompilasi untuk mengulangi kueri paksa. Untuk informasi selengkapnya, lihat pemaksaan rencana yang dioptimalkan dengan Query Store. |
| Skalar UDF Inlining | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai SQL Server 2019 (15.x) dengan tingkat kompatibilitas database 150 | UDF skalar diubah menjadi ekspresi relasional yang setara yang "di-inlin" ke dalam kueri panggilan, sering menghasilkan perolehan performa yang signifikan. |
| Pengoptimalan Rencana Parameter Sensitif | Ya, dimulai dengan tingkat kompatibilitas database 160 | Ya, mulai SQL Server 2022 (16.x) dengan tingkat kompatibilitas database 160 | Pengoptimalan Paket Sensitif Parameter membahas skenario di mana satu paket cache untuk kueri berparameter tidak optimal untuk semua kemungkinan nilai parameter masuk, misalnya distribusi data yang tidak seragam. |
| Penundaan Kompilasi untuk Variabel Tabel | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai SQL Server 2019 (15.x) dengan tingkat kompatibilitas database 150 | Menggunakan kardinalitas aktual dari variabel tabel yang ditemui pada kompilasi pertama alih-alih tebakan tetap. |
Fitur IQP untuk Azure SQL Managed Instance
| Fitur IQP | Didukung dalam Azure SQL Managed Instance | Description |
|---|---|---|
| Adaptif Gabungan (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Gabungan adaptif secara dinamis memilih jenis gabungan selama runtime berdasarkan baris input aktual. |
| Perkiraan Hitungan Berbeda | Yes | Berikan perkiraan COUNT DISTINCT untuk skenario big data dengan manfaat performa tinggi dan jejak memori yang rendah. |
| Perkiraan Persentil | Ya, dimulai dengan tingkat kompatibilitas database 110 | Komputasi persentil dengan cepat untuk himpunan data besar dengan batas kesalahan berbasis peringkat yang dapat diterima untuk membantu membuat keputusan cepat dengan menggunakan perkiraan fungsi agregat persentil. |
| Mode Batch pada Rowstore | Ya, dimulai dengan tingkat kompatibilitas database 150 | Berikan mode batch untuk beban kerja DW relasional terikat CPU tanpa memerlukan indeks penyimpan kolom. |
| Umpan balik estimasi kardinalitas (CE) | Ya, dimulai dengan tingkat kompatibilitas database 160 | Secara otomatis menyesuaikan perkiraan kardinalitas untuk kueri berulang untuk mengoptimalkan beban kerja di mana asumsi CE yang tidak efisien menyebabkan performa kueri yang buruk. Umpan balik CE akan mengidentifikasi dan menggunakan asumsi model yang lebih sesuai dengan kueri dan distribusi data tertentu untuk meningkatkan kualitas rencana eksekusi kueri. |
| Umpan balik estimasi kardinalitas (CE) untuk ekspresi | Ya, dimulai dengan tingkat kompatibilitas database 160 di Azure SQL Managed Instance, dengan SQL Server 2025 atau Always-up-to-datekebijakan pembaruan. Tidak, untuk kebijakan pembaruan SQL Server 2022. | Memperluas umpan balik CE untuk meningkatkan perkiraan kardinalitas untuk mengulangi ekspresi di seluruh kueri dengan belajar dari eksekusi sebelumnya dan secara otomatis menerapkan pilihan model CE yang sesuai ke eksekusi ekspresi tersebut di masa mendatang. |
| Tingkat paralelisme (DOP) umpan balik | Ya, dimulai dengan tingkat kompatibilitas database 160 di Azure SQL Managed Instance dengan SQL Server 2025 atau Always-up-to-datekebijakan pembaruan. Tidak, untuk kebijakan pembaruan SQL Server 2022. | Secara otomatis menyesuaikan tingkat paralelisme untuk mengulangi kueri untuk mengoptimalkan beban kerja di mana paralelisme yang tidak efisien dapat menyebabkan masalah performa. Mengharuskan Query Store diaktifkan. |
| Eksekusi Interleaved | Ya, dimulai dengan tingkat kompatibilitas database 140 | Menggunakan kardinalitas aktual dari fungsi bernilai tabel multi-pernyataan yang ditemui selama kompilasi pertama, bukan menggunakan perkiraan tetap. |
| Umpan balik pemberian memori (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Jika kueri mode batch memiliki operasi yang meluap ke disk, tambahkan lebih banyak memori untuk eksekusi berturut-turut. Jika kueri membuang > 50% memori yang dialokasikan untuknya, kurangi ukuran alokasi memori untuk eksekusi selanjutnya. |
| Umpan balik alokasi memori (Mode Baris) | Ya, dimulai dengan tingkat kompatibilitas database 150 | Jika kueri dalam mode baris memiliki operasi yang meluap ke disk, alokasikan lebih banyak memori dalam eksekusi berikutnya. Jika kueri membuang > 50% memori yang dialokasikan untuk itu, kurangi ukuran pemberian memori untuk eksekusi berturut-turut. |
| Umpan balik pengalokasian memori (Persentil) | Ya, dimulai dengan tingkat kompatibilitas database 160 | Mengatasi batasan umpan balik pemberian memori yang ada dengan cara yang tidak mengganggu dengan menggabungkan eksekusi kueri sebelumnya untuk menyempurnakan umpan balik. |
| Peruntukan Memori, CE, dan persistensi umpan balik DOP | Ya, dimulai dengan tingkat kompatibilitas database 160 | Menyediakan fungsionalitas baru untuk menyimpan umpan balik pemberian memori. Umpan balik CE dan DOP selalu dipertahankan. Mengharuskan Query Store diaktifkan untuk database dan dalam mode READ_WRITE. |
| Pengoptimalan rencana parameter opsional (OPPO) | Ya, dimulai dengan tingkat kompatibilitas database 170 di Azure SQL Managed Instance dengan SQL Server 2025 atau Always-up-to-datekebijakan pembaruan. Tidak, untuk kebijakan pembaruan SQL Server 2022. | Memanfaatkan infrastruktur pengoptimalan rencana adaptif (Multiplan) yang diperkenalkan bersamaan dengan peningkatan Pengoptimalan Rencana Sensitif Parameter (PSPO), yang memungkinkan dihasilkannya beberapa rencana dari satu pernyataan. Fitur ini dapat memilih rencana yang lebih optimal saat runtime berdasarkan apakah parameter adalah NULL OR NOT NULL, yang meningkatkan performa untuk kueri yang sebaliknya mungkin akan default ke performa suboptimal untuk pola kueri tersebut. |
| Paksaan rencana yang dioptimalkan dengan Query Store | Tanpa | Mengurangi overhead kompilasi untuk mengulangi kueri paksa. Untuk informasi selengkapnya, lihat pemaksaan rencana yang dioptimalkan dengan Query Store. |
| Pengoptimalan Rencana Parameter Sensitif | Ya, dimulai dengan tingkat kompatibilitas database 160 | Pengoptimalan Rencana Sensitivitas Parameter membahas skenario di mana satu rencana cache untuk kueri berparameter tidak optimal untuk semua kemungkinan nilai parameter masuk, misalnya distribusi data yang tidak seragam. |
| Skalar UDF Inlining | Ya, dimulai dengan tingkat kompatibilitas database 150 | UDF skalar diubah menjadi ekspresi relasional yang setara yang "di-inlin" ke dalam kueri panggilan, sering menghasilkan perolehan performa yang signifikan. |
| Penundaan Kompilasi untuk Variabel Tabel | Ya, dimulai dengan tingkat kompatibilitas database 150 | Menggunakan kardinalitas aktual dari variabel tabel yang ditemui pada kompilasi pertama alih-alih tebakan tetap. |
Fitur IQP untuk SQL Server 2019
| Fitur IQP | Didukung pada SQL Server 2019 (15.x) | Description |
|---|---|---|
| Gabungan Adaptif (Mode Batch) | Ya, mulai SQL Server 2017 (14.x) dengan tingkat kompatibilitas database 140 | Gabungan adaptif secara dinamis memilih jenis gabungan selama runtime berdasarkan baris input aktual. |
| Perkiraan Jumlah Unik | Yes | Berikan perkiraan COUNT DISTINCT untuk skenario big data dengan manfaat performa tinggi dan jejak memori yang rendah. |
| Mode Batch pada Rowstore | Ya, dimulai dengan tingkat kompatibilitas database 150 | Berikan mode batch untuk beban kerja DW relasional terikat CPU tanpa memerlukan indeks penyimpan kolom. |
| Eksekusi Interleaved | Ya, dimulai dengan tingkat kompatibilitas database 140 | Gunakan kardinalitas aktual dari fungsi tabel bernilai banyak pernyataan yang ditemukan pada kompilasi pertama daripada tebakan tetap. |
| Umpan balik pemberian memori (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Jika kueri mode batch memiliki operasi yang meluap ke disk, tambahkan lebih banyak memori untuk eksekusi berturut-turut. Jika kueri membuang > 50% memori yang dialokasikan untuk itu, kurangi ukuran pemberian memori untuk eksekusi berturut-turut. |
| Umpan balik alokasi memori (Mode Baris) | Ya, dimulai dengan tingkat kompatibilitas database 150 | Jika kueri dalam mode baris memiliki operasi yang meluap ke disk, alokasikan lebih banyak memori dalam eksekusi berikutnya. Jika kueri membuang > 50% memori yang dialokasikan untuk itu, kurangi ukuran pemberian memori untuk eksekusi berturut-turut. |
| Skalar UDF Inlining | Ya, dimulai dengan tingkat kompatibilitas database 150 | UDF skalar diubah menjadi ekspresi relasional yang setara yang "di-inlin" ke dalam kueri panggilan, sering menghasilkan perolehan performa yang signifikan. |
| Penundaan Kompilasi untuk Variabel Tabel | Ya, dimulai dengan tingkat kompatibilitas database 150 | Gunakan kardinalitas aktual dari variabel tabel yang ditemui pada kompilasi pertama alih-alih tebakan tetap. |
Fitur IQP untuk SQL Server 2017
| Fitur IQP | Didukung pada SQL Server 2017 (14.x) | Description |
|---|---|---|
| Adaptif Gabungan (Mode Batch) | Ya, mulai SQL Server 2017 (14.x) dengan tingkat kompatibilitas database 140 | Gabungan adaptif secara dinamis memilih jenis gabungan selama runtime berdasarkan baris input aktual. |
| Perkiraan Hitungan Berbeda | Yes | Berikan perkiraan COUNT DISTINCT untuk skenario big data dengan manfaat performa tinggi dan jejak memori yang rendah. |
| Eksekusi Interleaved | Ya, dimulai dengan tingkat kompatibilitas database 140 | Gunakan kardinalitas aktual dari fungsi tabel bernilai banyak pernyataan yang ditemukan pada kompilasi pertama daripada tebakan tetap. |
| Umpan balik alokasi memori (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Jika kueri mode batch memiliki operasi yang meluap ke disk, tambahkan lebih banyak memori untuk eksekusi berturut-turut. Jika kueri membuang > 50% memori yang dialokasikan untuk itu, kurangi ukuran pemberian memori untuk eksekusi berturut-turut. |
persyaratan Query Store
Beberapa rangkaian fitur pemrosesan kueri intelligent mengharuskan Query Store diaktifkan untuk menguntungkan database pengguna. Untuk mengaktifkan Query Store, lihat Aktifkan Query Store.
| Fitur IQP | Memerlukan pengaktifan Query Store dan READ_WRITE |
|---|---|
| Adaptif Gabungan (Mode Batch) | No |
| Perkiraan Hitungan Berbeda | No |
| Perkiraan Persentil | No |
| Mode Batch pada Rowstore | No |
| Umpan balik estimasi kardinalitas (CE) | Yes |
| Tingkat paralelisme (DOP) umpan balik | Yes |
| Eksekusi Interleaved | No |
| Umpan balik alokasi memori (Mode Batch) | No |
| Umpan balik alokasi memori (Mode Baris) | No |
| Umpan balik pemberian memori (Mode Persentil dan Persistensi) | Yes |
| Paksaan rencana yang dioptimalkan dengan Query Store | Yes |
| Skalar UDF Inlining | No |
| Pengoptimalan Rencana Parameter Sensitif | Tidak, tetapi direkomendasikan |
| Penundaan Kompilasi untuk Variabel Tabel | No |
Konten terkait
- Fitur pemrosesan kueri cerdas secara rinci
- Joins (SQL Server)
- Mode eksekusi
- Panduan arsitektur pengolahan kueri
- Referensi operator logis dan fisik showplan
- Yang baru di SQL Server 2017
- Yang baru di SQL Server 2019
- Yang baru di SQL Server 2022
- Umpan balik pengelolaan memori
- Demonstrasikan Pemrosesan Kueri Cerdas
- Lipatan Konstanta dan Evaluasi Ekspresi
- Demo pemrosesan kueri intelijen pada GitHub
- Pusat Kinerja untuk Mesin Database SQL Server dan Azure SQL Database
- Pantau performa dengan menggunakan Query Store
- Praktik terbaik untuk memantau beban kerja dengan Query Store