Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
La famiglia di funzionalità di elaborazione di query intelligenti include funzionalità ad ampio spettro che migliorano le prestazioni di carichi di lavoro esistenti con un impegno minimo per l'implementazione. L'immagine seguente illustra in dettaglio la famiglia di funzionalità elaborazione di query intelligenti (IQP) e quando sono state introdotte per la prima volta per SQL Server. Tutte le funzionalità di elaborazione di query intelligenti sono disponibili in Istanza gestita di SQL di Azure e database SQL di Azure. Alcune funzionalità dipendono dal livello di compatibilità del database.
Guardare questo video per una panoramica sull'elaborazione di query intelligenti:
Per demo e codice di esempio delle funzionalità di elaborazione di query intelligenti (IQP) in GitHub, visitare https://aka.ms/IQPDemos.
È possibile impostare automaticamente i carichi di lavoro come idonei all'elaborazione di query intelligenti abilitando il livello di compatibilità applicabile per il database. Questa opzione è impostabile con Transact-SQL. Per esempio:
ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 170;
La tabella seguente illustra nel dettaglio tutte le funzionalità di elaborazione di query intelligenti con i rispettivi requisiti per il livello di compatibilità del database. Per informazioni dettagliate su tutte le funzionalità di IQP, incluse le note sulla versione e descrizioni più approfondite, vedere Funzionalità di elaborazione di query intelligenti in dettaglio.
Funzionalità di IQP per il database SQL di Azure e SQL Server 2025
| Funzionalità IQP | Supportato in database SQL di Azure | Supportato in SQL Server 2025 (17.x) | Description |
|---|---|---|---|
| Ottimizzazione del piano di parametri facoltativa (OPPO) | No | Sì, a partire da SQL Server 2025 (17.x) con livello di compatibilità 170 | Sfrutta l'infrastruttura di ottimizzazione dei piani adattivi (Multiplan), introdotta con l'ottimizzazione dei Piani Sensibili ai Parametri (PSPO), che genera più piani da una singola istruzione. La funzionalità può scegliere un piano più ottimale in fase di esecuzione in base al fatto che un parametro sia NULL OR NOT NULL, che migliora le prestazioni per le query che potrebbero altrimenti risultare non ottimali per tali modelli di query. |
| Feedback sulla stima della cardinalità (CE) per le espressioni | No | Sì, a partire da SQL Server 2025 (17.x) con livello di compatibilità 160 | Estende il feedback ce per migliorare le stime della cardinalità per le espressioni ripetute tra query apprendendo dalle esecuzioni precedenti e applicando automaticamente le scelte appropriate del modello ce alle esecuzioni future di tali espressioni |
| OPTIMIZED_SP_EXECUTESQL | Yes | Sì, a partire da SQL Server 2025 (17.x) | Ridurre efficacemente l'impatto delle tempeste di compilazione. Una tempesta di compilazione è una situazione in cui un numero elevato di query viene compilato contemporaneamente, causando problemi di prestazioni e contesa di risorse. Abilitare questa funzionalità per consentire alle invocazioni di sp_executesql di comportarsi come oggetti, ad esempio procedure memorizzate e trigger, dal punto di vista della compilazione. |
Funzionalità di IQP per il database SQL di Azure e SQL Server 2022
| Funzionalità IQP | Supportato in database SQL di Azure | Supportato in SQL Server 2022 (16.x) e versioni successive | Description |
|---|---|---|---|
| Join adattivi (modalità batch) | Sì, a partire dal livello di compatibilità del database 140 | Sì, a partire da SQL Server 2017 (14.x) con livello di compatibilità del database 140 | I join adattivi selezionano in modo dinamico un tipo di join in fase di esecuzione in base alle righe di input effettive. |
| Count Distinct approssimato | Yes | Sì, a partire da SQL Server 2019 (15.x) | Fornire informazioni approssimative COUNT DISTINCT per gli scenari di Big Data con il vantaggio di prestazioni elevate e un footprint di memoria ridotto. |
| Percentile approssimativo | Sì, a partire dal livello di compatibilità del database 110 | Sì, a partire da SQL Server 2022 (16.x) con livello di compatibilità 110 | Calcolare rapidamente i percentili per un set di dati di grandi dimensioni con limiti di errore basati su classificazione accettabili per prendere decisioni rapide usando funzioni di aggregazione percentile approssimative. |
| Modalità batch per rowstore | Sì, a partire dal livello di compatibilità del database 150 | Sì, a partire da SQL Server 2019 (15.x) con livello di compatibilità 150 | Consente di specificare la modalità batch per i carichi di lavoro del data warehouse relazionale associati alla CPU senza richiedere gli indici columnstore. |
| Feedback stima di cardinalità (CE) | Sì, a partire dal livello di compatibilità del database 160 | Sì, a partire da SQL Server 2022 (16.x) con livello di compatibilità 160 | Adatta automaticamente le stime della cardinalità per le query ripetute per ottimizzare i carichi di lavoro in cui presupposti di stime di cardinalità inefficienti causano scarse prestazioni di query. Il feedback stima di cardinalità identificherà e userà un presupposto del modello più adatto a una determinata query e distribuzione dei dati per migliorare la qualità del piano di esecuzione delle query. |
| Feedback sul grado di parallelismo (DOP) | Sì, a partire dal livello di compatibilità del database 160 | Sì, a partire dal livello di compatibilità del database 160 | Adatta automaticamente il grado di parallelismo delle query ripetute per ottimizzare i carichi di lavoro in cui un parallelismo inefficiente può causare problemi di prestazioni. Richiede l'abilitazione di Query Store. |
| Esecuzione interleaved | Sì, a partire dal livello di compatibilità del database 140 | Sì, a partire da SQL Server 2017 (14.x) con livello di compatibilità del database 140 | Consente di usare la cardinalità effettiva della funzione con valori di tabella con istruzioni multiple rilevata nella prima compilazione invece di una stima fissa. |
| Feedback delle concessioni di memoria (modalità batch) | Sì, a partire dal livello di compatibilità del database 140 | Sì, a partire da SQL Server 2017 (14.x) con livello di compatibilità del database 140 | Se una query in modalità batch contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
| Feedback delle concessioni di memoria (modalità riga) | Sì, a partire dal livello di compatibilità del database 150 | Sì, a partire da SQL Server 2019 (15.x) con livello di compatibilità del database 150 | Se una query in modalità riga contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
| Feedback della concessione di memoria (Percentile) | Sì, abilitato in tutti i database | Sì, a partire da SQL Server 2022 (16.x) con livello di compatibilità del database 140 | Risolve le limitazioni esistenti del feedback delle concessioni di memoria in modo non invasivo incorporando l'esecuzione di query precedenti per perfezionare il feedback. |
| Persistenza del feedback delle concessioni di memoria | Sì, abilitato in tutti i database | Sì, a partire da SQL Server 2022 (16.x) con livello di compatibilità del database 140 | Fornisce nuove funzionalità per mantenere il feedback delle concessioni di memoria. Richiede l'abilitazione di Query Store nella modalità READ_WRITE per il database. |
| Persistenza feedback della stima di cardinalità (CE) | Sì, a partire dal livello di compatibilità del database 160 | Sì, a partire da SQL Server 2022 (16.x) con livello di compatibilità del database 160 | Richiede l'abilitazione di Query Store nella modalità READ_WRITE per il database. |
| Utilizzo forzato del piano ottimizzato con Query Store | Yes | Sì, a partire da SQL Server 2022 (16.x). | Riduce il sovraccarico di compilazione per le query ripetitive imposte. Per altre informazioni, vedere Uso forzato del piano ottimizzato con Query Store. |
| Inlining di funzioni definite dall'utente scalari | Sì, a partire dal livello di compatibilità del database 150 | Sì, a partire da SQL Server 2019 (15.x) con livello di compatibilità del database 150 | Le funzioni definite dall'utente scalari vengono trasformate in espressioni relazionali equivalenti che vengono rese inline nella query chiamante, ottenendo spesso significativi miglioramenti delle prestazioni. |
| Ottimizzazione dei piani sensibili ai parametri | Sì, a partire dal livello di compatibilità del database 160 | Sì, a partire da SQL Server 2022 (16.x) con livello di compatibilità del database 160 | L'ottimizzazione del piano sensibile ai parametri risolve lo scenario in cui un singolo piano memorizzato nella cache per una query con parametri non è ottimale per tutti i possibili valori dei parametri in ingresso, ad esempio distribuzioni di dati non uniformi. |
| Compilazione posticipata delle variabili di tabella | Sì, a partire dal livello di compatibilità del database 150 | Sì, a partire da SQL Server 2019 (15.x) con livello di compatibilità del database 150 | Consente di usare la cardinalità effettiva della variabile tabella rilevata nella prima compilazione invece di una stima fissa. |
Funzionalità di elaborazione di query intelligenti (IQP) per Istanza gestita di SQL di Azure
| Funzionalità IQP | Supportata in Istanza gestita di SQL di Azure | Description |
|---|---|---|
| Join adattivi (modalità batch) | Sì, a partire dal livello di compatibilità del database 140 | I join adattivi selezionano in modo dinamico un tipo di join in fase di esecuzione in base alle righe di input effettive. |
| Count Distinct approssimato | Yes | Fornire informazioni approssimative COUNT DISTINCT per gli scenari di Big Data con il vantaggio di prestazioni elevate e un footprint di memoria ridotto. |
| Percentile approssimativo | Sì, a partire dal livello di compatibilità del database 110 | Calcolare rapidamente i percentili per un set di dati di grandi dimensioni con limiti di errore basati su classificazione accettabili per prendere decisioni rapide usando funzioni di aggregazione percentile approssimative. |
| Modalità batch per rowstore | Sì, a partire dal livello di compatibilità del database 150 | Consente di specificare la modalità batch per i carichi di lavoro del data warehouse relazionale associati alla CPU senza richiedere gli indici columnstore. |
| Feedback stima di cardinalità (CE) | Sì, a partire dal livello di compatibilità del database 160 | Adatta automaticamente le stime della cardinalità per le query ripetute per ottimizzare i carichi di lavoro in cui presupposti di stime di cardinalità inefficienti causano scarse prestazioni di query. Il feedback stima di cardinalità identificherà e userà un presupposto del modello più adatto a una determinata query e distribuzione dei dati per migliorare la qualità del piano di esecuzione delle query. |
| Feedback sul grado di parallelismo (DOP) | Sì, a partire dal livello di compatibilità del database 160 in Istanza gestita di SQL di Azure con i criteri di aggiornamento di SQL Server 2025 o Always-up-to-date. No, per i criteri di aggiornamento di SQL Server 2022. | Adatta automaticamente il grado di parallelismo delle query ripetute per ottimizzare i carichi di lavoro in cui un parallelismo inefficiente può causare problemi di prestazioni. Richiede l'abilitazione di Query Store. |
| Esecuzione interleaved | Sì, a partire dal livello di compatibilità del database 140 | Consente di usare la cardinalità effettiva della funzione con valori di tabella con istruzioni multiple rilevata nella prima compilazione invece di una stima fissa. |
| Feedback delle concessioni di memoria (modalità batch) | Sì, a partire dal livello di compatibilità del database 140 | Se una query in modalità batch contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
| Feedback delle concessioni di memoria (modalità riga) | Sì, a partire dal livello di compatibilità del database 150 | Se una query in modalità riga contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
| Feedback della concessione di memoria (Percentile) | Sì, a partire dal livello di compatibilità del database 160 | Risolve le limitazioni esistenti del feedback delle concessioni di memoria in modo non invasivo incorporando l'esecuzione di query precedenti per perfezionare il feedback. |
| Persistenza del feedback di concessioni di memoria, stima di cardinalità (CE) e grado di parallelismo (DOP) | Sì, a partire dal livello di compatibilità del database 160 | Fornisce nuove funzionalità per mantenere il feedback delle concessioni di memoria. Il feedback di stima di cardinalità (CE) e grado di parallelismo (DOP) è sempre persistente. Richiede l'abilitazione di Query Store nella modalità READ_WRITE per il database. |
| Utilizzo forzato del piano ottimizzato con Query Store | No | Riduce il sovraccarico di compilazione per le query ripetitive imposte. Per altre informazioni, vedere Uso forzato del piano ottimizzato con Query Store. |
| Inlining di funzioni definite dall'utente scalari | Sì, a partire dal livello di compatibilità del database 150 | Le funzioni definite dall'utente scalari vengono trasformate in espressioni relazionali equivalenti che vengono rese inline nella query chiamante, ottenendo spesso significativi miglioramenti delle prestazioni. |
| Ottimizzazione dei piani sensibili ai parametri | Sì, a partire dal livello di compatibilità del database 160 | L'ottimizzazione del piano di riservatezza dei parametri risolve lo scenario in cui un singolo piano memorizzato nella cache per una query con parametri non è ottimale per tutti i possibili valori dei parametri in ingresso, ad esempio distribuzioni di dati non uniformi. |
| Compilazione posticipata delle variabili di tabella | Sì, a partire dal livello di compatibilità del database 150 | Consente di usare la cardinalità effettiva della variabile tabella rilevata nella prima compilazione invece di una stima fissa. |
Funzionalità di IQP per SQL Server 2019
| Funzionalità IQP | Supportato in SQL Server 2019 (15.x) | Description |
|---|---|---|
| Join adattivi (modalità batch) | Sì, a partire da SQL Server 2017 (14.x) con livello di compatibilità del database 140 | I join adattivi selezionano in modo dinamico un tipo di join in fase di esecuzione in base alle righe di input effettive. |
| Count Distinct approssimato | Yes | Fornire informazioni approssimative COUNT DISTINCT per gli scenari di Big Data con il vantaggio di prestazioni elevate e un footprint di memoria ridotto. |
| Modalità batch per rowstore | Sì, a partire dal livello di compatibilità del database 150 | Consente di specificare la modalità batch per i carichi di lavoro del data warehouse relazionale associati alla CPU senza richiedere gli indici columnstore. |
| Esecuzione interleaved | Sì, a partire dal livello di compatibilità del database 140 | Consente di usare la cardinalità effettiva della funzione con valori di tabella con istruzioni multiple rilevata nella prima compilazione invece di una stima fissa. |
| Feedback delle concessioni di memoria (modalità batch) | Sì, a partire dal livello di compatibilità del database 140 | Se una query in modalità batch contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
| Feedback delle concessioni di memoria (modalità riga) | Sì, a partire dal livello di compatibilità del database 150 | Se una query in modalità riga contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
| Inlining di funzioni definite dall'utente scalari | Sì, a partire dal livello di compatibilità del database 150 | Le funzioni definite dall'utente scalari vengono trasformate in espressioni relazionali equivalenti che vengono rese inline nella query chiamante, ottenendo spesso significativi miglioramenti delle prestazioni. |
| Compilazione posticipata delle variabili di tabella | Sì, a partire dal livello di compatibilità del database 150 | Consente di usare la cardinalità effettiva della variabile tabella rilevata nella prima compilazione invece di una stima fissa. |
Funzionalità di IQP per SQL Server 2017
| Funzionalità IQP | Supportato in SQL Server 2017 (14.x) | Description |
|---|---|---|
| Join adattivi (modalità batch) | Sì, a partire da SQL Server 2017 (14.x) con livello di compatibilità del database 140 | I join adattivi selezionano in modo dinamico un tipo di join in fase di esecuzione in base alle righe di input effettive. |
| Count Distinct approssimato | Yes | Fornire informazioni approssimative COUNT DISTINCT per gli scenari di Big Data con il vantaggio di prestazioni elevate e un footprint di memoria ridotto. |
| Esecuzione interleaved | Sì, a partire dal livello di compatibilità del database 140 | Consente di usare la cardinalità effettiva della funzione con valori di tabella con istruzioni multiple rilevata nella prima compilazione invece di una stima fissa. |
| Feedback delle concessioni di memoria (modalità batch) | Sì, a partire dal livello di compatibilità del database 140 | Se una query in modalità batch contiene operazioni che eseguono lo spill su disco, aggiungere altra memoria per le esecuzioni consecutive. Se una query comporta uno spreco > del 50% della memoria allocata, ridurre la dimensione di concessione di memoria per le esecuzioni consecutive. |
Requisito di Query Store
Varie Funzionalità di elaborazione di query intelligenti richiedono l'abilitazione di Query Store per trarre vantaggio dal database utente. Per abilitare Query Store, vedere Abilitare Query Store.
| Funzionalità IQP | Richiede l'abilitazione di Query Store e READ_WRITE |
|---|---|
| Join adattivi (modalità batch) | No |
| Count Distinct approssimato | No |
| Percentile approssimativo | No |
| Modalità batch per rowstore | No |
| Feedback stima di cardinalità (CE) | Yes |
| Feedback sul grado di parallelismo (DOP) | Yes |
| Esecuzione interleaved | No |
| Feedback delle concessioni di memoria (modalità batch) | No |
| Feedback delle concessioni di memoria (modalità riga) | No |
| Feedback delle concessioni di memoria (in modalità percentile e persistenza) | Yes |
| Utilizzo forzato del piano ottimizzato con Query Store | Yes |
| Inlining di funzioni definite dall'utente scalari | No |
| Ottimizzazione dei piani sensibili ai parametri | No, ma è consigliabile |
| Compilazione posticipata delle variabili di tabella | No |
Contenuti correlati
- Funzionalità di elaborazione di query intelligenti in dettaglio
- Join (SQL Server)
- Modalità di esecuzione
- Guida sull'architettura di elaborazione delle query
- Riferimento dell'operatore per piani di esecuzione logici e fisici
- Novità di SQL Server 2017
- Novità di SQL Server 2019
- Novità di SQL Server 2022
- Feedback della concessione di memoria
- Dimostrazione dell'elaborazione di query intelligenti
- Valutazione delle espressioni ed elaborazione delle costanti
- Demo di elaborazione di query intelligenti in GitHub
- Centro prestazioni per il motore di database di SQL Server e il database SQL di Azure
- Monitorare le prestazioni tramite Query Store
- Procedure consigliate per monitorare i carichi di lavoro con Query Store