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.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di 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 di 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) di GitHub, kunjungi https://aka.ms/IQPDemos.
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 di Azure SQL Database | Didukung di SQL Server 2025 (17.x) | Description |
|---|---|---|---|
| Pengoptimalan rencana parameter opsional (OPPO) | No | Ya, dimulai dengan SQL Server 2025 (17.x) dengan tingkat kompatibilitas 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 | No | Ya, dimulai dengan SQL Server 2025 (17.x) dengan tingkat kompatibilitas 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 di Azure SQL Database | Didukung di SQL Server 2022 (16.x) dan versi yang lebih baru | Description |
|---|---|---|---|
| Gabungan Adaptif (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Ya, mulai di 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 di 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 di 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. Mengharuskan Penyimpanan Kueri diaktifkan. |
| Eksekusi Interleaved | Ya, dimulai dengan tingkat kompatibilitas database 140 | Ya, mulai di 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 pemberian memori (Mode Batch) | Ya, dimulai dengan tingkat kompatibilitas database 140 | Ya, mulai di 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 pemberian memori (Mode Baris) | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai di SQL Server 2019 (15.x) dengan tingkat kompatibilitas database 150 | Jika kueri mode baris 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 pemberian 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 mempertahankan umpan balik pemberian memori. Penyimpanan Kueri perlu 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 | Penyimpanan Kueri perlu diaktifkan untuk database dan dalam mode READ_WRITE. |
| Pemaksaan 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 Paket yang dioptimalkan memaksa dengan Penyimpanan Kueri. |
| Skalar UDF Inlining | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai di 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 di 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. |
| Kompilasi Ditangguhkan Variabel Tabel | Ya, dimulai dengan tingkat kompatibilitas database 150 | Ya, mulai di 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 di Azure SQL Managed Instance | Description |
|---|---|---|
| Gabungan Adaptif (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 di 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. |
| Tingkat paralelisme (DOP) umpan balik | Ya, dimulai dengan tingkat kompatibilitas database 160 di Azure SQL Managed Instance dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date. 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 Penyimpanan Kueri diaktifkan. |
| Eksekusi Interleaved | Ya, dimulai 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 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 pemberian memori (Mode Baris) | Ya, dimulai dengan tingkat kompatibilitas database 150 | Jika kueri mode baris 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 pemberian 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 mempertahankan umpan balik pemberian memori. Umpan balik CE dan DOP selalu dipertahankan. Penyimpanan Kueri perlu diaktifkan untuk database dan dalam mode READ_WRITE. |
| Pemaksaan rencana yang dioptimalkan dengan Query Store | Tanpa | Mengurangi overhead kompilasi untuk mengulangi kueri paksa. Untuk informasi selengkapnya, lihat Paket yang dioptimalkan memaksa dengan Penyimpanan Kueri. |
| 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. |
| 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. |
| Kompilasi Ditangguhkan 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 di SQL Server 2019 (15.x) | Description |
|---|---|---|
| Gabungan Adaptif (Mode Batch) | Ya, mulai di 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. |
| Mode Batch di 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 bernilai tabel multi-pernyataan yang ditemui pada kompilasi pertama alih-alih 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 pemberian memori (Mode Baris) | Ya, dimulai dengan tingkat kompatibilitas database 150 | Jika kueri mode baris 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. |
| 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. |
| Kompilasi Ditangguhkan 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 di SQL Server 2017 (14.x) | Description |
|---|---|---|
| Gabungan Adaptif (Mode Batch) | Ya, mulai di 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 bernilai tabel multi-pernyataan yang ditemui pada kompilasi pertama alih-alih 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. |
Persyaratan Penyimpanan Kueri
Beberapa rangkaian fitur pemrosesan kueri cerdas mengharuskan Penyimpanan Kueri diaktifkan untuk menguntungkan database pengguna. Untuk mengaktifkan Penyimpanan Kueri, lihat Mengaktifkan Penyimpanan Kueri.
| Fitur IQP | Memerlukan Query Store untuk diaktifkan dan READ_WRITE |
|---|---|
| Gabungan Adaptif (Mode Batch) | No |
| Perkiraan Hitungan Berbeda | No |
| Perkiraan Persentil | No |
| Mode Batch di Rowstore | No |
| Umpan balik estimasi kardinalitas (CE) | Yes |
| Tingkat paralelisme (DOP) umpan balik | Yes |
| Eksekusi Interleaved | No |
| Umpan balik pemberian memori (Mode Batch) | No |
| Umpan balik pemberian memori (Mode Baris) | No |
| Umpan balik pemberian memori (Mode Persentil dan Persistensi) | Yes |
| Pemaksaan rencana yang dioptimalkan dengan Query Store | Yes |
| Skalar UDF Inlining | No |
| Pengoptimalan Rencana Parameter Sensitif | Tidak, tetapi direkomendasikan |
| Kompilasi Ditangguhkan Variabel Tabel | No |
Konten terkait
- Fitur pemrosesan kueri cerdas secara rinci
- Gabungan (SQL Server)
- Mode eksekusi
- Panduan arsitektur pemrosesan kueri
- Referensi operator logis dan fisik showplan
- Apa yang baru di SQL Server 2017
- Apa yang baru di SQL Server 2019
- Apa yang baru di SQL Server 2022
- Umpan balik pemberian memori
- Menunjukkan Pemrosesan Kueri Cerdas
- Lipatan Konstanta dan Evaluasi Ekspresi
- Demo pemrosesan kueri cerdas di GitHub
- Pusat Performa untuk Mesin Database SQL Server dan Azure SQL Database
- Memantau performa dengan menggunakan Penyimpanan Kueri
- Praktik terbaik untuk memantau beban kerja dengan Penyimpanan Kueri