Riepilogo

Si consideri lo scenario seguente:

  • Si esegue una query spaziale utilizzando un filtro con una funzione come STIntersects in SQL Server 2016 o 2017 di SQL Server in Windows.

  • Il livello di compatibilità è 120.

  • La query utilizza un piano di esecuzione parallela.

  • L'aggiornamento il livello di compatibilità a 130 e il piano di esecuzione è stato modificato da parallelo a seriale.


In questo caso si verifichi un degrado delle prestazioni se la query restituisce un set di risultati di grandi dimensioni.

Risoluzione

Per risolvere questo problema, provare uno dei seguenti metodi:

  • Ripristinare il livello di compatibilità del database a 120. In questo caso, non sarà di beneficiare di alcune delle funzionalità disponibili in SQL Server 2016 o 2017 di SQL Server in Windows sotto il livello di compatibilità del database 130. Tuttavia, ancora sarà possibile realizzare numerosi miglioramenti che non sono associati ad esempio di levelfor di compatibilità del database, un miglioramento delle prestazioni generali delle operazioni di query con tipi di dati spaziali.
     
    Per un elenco dei miglioramenti di SQL Server 2016 che richiedono il livello di compatibilità del database 130, vedere Modificare il livello di compatibilità del DATABASE (Transact-SQL).

  • Forzare il piano generato con il livello di compatibilità del database 120 se garantisce prestazioni migliori. È possibile forzare il piano durante l'esecuzione con livello di compatibilità del database 130 utilizzando l'hint USE PLAN query. Per ulteriori informazioni sull'utilizzo dei parametri, vedere Hint per la Query (Transact-SQL).
     
    In alternativa, utilizzare l'archivio di Query per identificare e correggere il piano specifico. Per ulteriori informazioni sull'utilizzo di Query archivio a tale scopo, vedere individuare e risolvere le query con regressioni scelta piano.

Ulteriori informazioni

Livelli di compatibilità del database di SQL Server 120 e 130 utilizzano approcci diversi per la stima di cardinalità dei predicati, in cui una funzione scalare definita dall'utente o una particolare funzione T-SQL (ad esempio STIntersects) viene confrontata con una costante.

Anche se il modello di costo utilizzato dal livello di compatibilità del database 130 genera miglioramenti delle prestazioni per carichi di lavoro rispetto a livello di 120, per alcune prestazioni di query (in base a dati e funzioni utilizzate) di query piani di riduzione a livello 130.

Serve aiuto?

Amplia le tue competenze

Esplora i corsi di formazione >

Ottieni in anticipo le nuove caratteristiche

Partecipa a Microsoft Insider >

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×