Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use)

Riepilogo

Questo aggiornamento introduce un nuovo argomento di hint di query, use hint, che consente di guidare Query Optimizer senza credenziali elevate o senza essere membri del ruolo del server sysadmin. La sintassi di questo nuovo hint di query è simile alla seguente:

<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}

Questo aggiornamento introduce anche le opzioni di hint seguenti che possono essere usate con l'argomento hint USE .

Opzione

Contrassegno di traccia equivalente

Descrizione

Si applica a

ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS

TF 9476

Fa in modo che SQL Server generi un piano di query usando il presupposto di contenimento semplice anziché l'ipotesi di contenimento di base predefinita per i join, in Query Optimizer Modello di stima della cardinalità di SQL Server 2014 (12. x) o versioni successive.

ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES

TF 4137

Fa in modo che SQL Server generi un piano usando la selettività minima quando si stimano e predicati per i filtri per tenere conto della correlazione. Il nome del suggerimento è parallelo flag di traccia 4137 se usato con il modello di stima della cardinalità di SQL server 2012 (11. x) e versioni precedenti e ha un effetto simile quando il contrassegno di traccia 9471 viene usato con il modello di stima della cardinalità di SQL Server 2014 (12. x) o versione successiva.

DISABLE_BATCH_MODE_ADAPTIVE_JOINS

Disabilita i join adattivi in modalità batch.

a partire da SQL Server 2017

DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK

Disabilita il feedback della concessione della memoria in modalità batch.

a partire da SQL Server 2017

DISABLE_DEFERRED_COMPILATION_TV

Disabilita la compilazione differita della variabile di tabella.

a partire da SQL Server 2019

DISABLE_INTERLEAVED_EXECUTION_TVF

Disabilita l'esecuzione Interleaved per le funzioni con valori di tabella con istruzioni multiple.

a partire da SQL Server 2017

DISABLE_OPTIMIZED_NESTED_LOOP

TF 2340

Indica a query processor di non usare un'operazione di ordinamento (ordinamento batch) per i join di ciclo annidati ottimizzati durante la generazione di un piano di query.

DISABLE_OPTIMIZER_ROWGOAL

TF 4138

Fa in modo che SQL Server generi un piano che non usa le modifiche dell'obiettivo di riga con le query che contengono queste parole chiave:

  • In alto

  • OPZIONE (FAST N)

  • IN

  • ESISTE

DISABLE_PARAMETER_SNIFFING

TF 4136

Indica a Query Optimizer di usare la media distribuzione dei dati durante la compilazione di una query con uno o più parametri. Questa istruzione rende il piano di query indipendente dal valore del parametro usato per la prima volta quando la query è stata compilata. Usare questo hint per ignorare l'impostazione di configurazione con ambito database PARAMETER_SNIFFING = disattivato.

DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK

Disabilita il feedback della memoria in modalità di riga.

a partire da SQL Server 2019

DISABLE_TSQL_SCALAR_UDF_INLINING

Disabilita l'inlining della FDU scalare.

a partire da SQL Server 2019

DISALLOW_BATCH_MODE

Disabilita l'esecuzione in modalità batch.

a partire da SQL Server 2019

ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS

TF 4139

Consente di abilitare le statistiche rapide generate automaticamente (modifica istogramma) per qualsiasi colonna di indice iniziale per la quale è necessaria la stima della cardinalità. L'istogramma usato per stimare la cardinalità verrà regolato in fase di compilazione della query per tenere conto del valore massimo o minimo effettivo della colonna.

ENABLE_QUERY_OPTIMIZER_HOTFIXES

TF 4199

Consente di aggiornare gli hotfix di query Optimizer (modifiche rilasciate negli aggiornamenti cumulativi e nei Service Pack di SQL Server). Usare questo hint per eseguire l'overrideImpostazione di configurazione con ambito Database QUERY_OPTIMIZER_HOTFIXES = attivato.

FORCE_DEFAULT_CARDINALITY_ESTIMATION

TF 9481

Impone l'uso di query optimizer Modello di stima della cardinalità che corrisponde al livello di compatibilità del database corrente. Usare questo hint per eseguire l'overrideImpostazione di configurazione con ambito Database LEGACY_CARDINALITY_ESTIMATION = attivata.

FORCE_LEGACY_CARDINALITY_ESTIMATION

TF 9481

Impone l'uso di query optimizer Modello di stima della cardinalità di SQL Server 2012 (11. x) e versioni precedenti. Usare questo hint per ignorare l'impostazione di configurazione con ambito database LEGACY_CARDINALITY_ESTIMATION = attivato.

QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n

Impone il comportamento di query optimizer a livello di query. Questo comportamento si verifica come se la query fosse stata compilata con il livello di compatibilità del database n, dove n è un livello di compatibilità del database supportato. Fare riferimento asys.dm_exec_valid_use_hints per un elenco dei valori attualmente supportati per n.

a partire da SQL Server 2017 (14. x) CU10 dalla

Per altre informazioni, vedere hints (Transact-SQL)-query.

Ulteriori informazioni

Questo aggiornamento è incluso nel Service Pack 1 per SQL Server 2016.

 

Ogni nuova build per SQL Server 2016 contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella build precedente. È consigliabile installare la Build più recente per SQL Server 2016.

Gli scenari in cui il comportamento di SQL Server Query Optimizer (QO) devono essere accennati sono abbastanza comuni e vengono tradizionalmente risolti usando diversi flag di traccia (documentati e non documentati). Tuttavia, quando i flag di traccia sono impostati globalmente, potrebbero avere effetti negativi su altri carichi di lavoro. Inoltre, l'abilitazione per ogni sessione non è pratica con le applicazioni esistenti e l'abilitazione per ogni query con l' opzione QUERYTRACEON richiede l'appartenenza al ruolo predefinito del server sysadmin. Anche se è possibile aggirare questo comportamento usando una guida di piano o una stored procedure, sono ancora necessarie credenziali elevate. I contrassegni di traccia vengono usati per impostare temporaneamente specifiche caratteristiche del server o per disattivare un determinato comportamento, ma possono essere difficili da gestire e comprendere. Per informazioni sui contrassegni di traccia, vedere l'argomento contrassegni di traccia (Transact-SQL) nel sito Web Microsoft Developer Network (MSDN).

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.