Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

INTRODUZIONE

Le versioni di Microsoft SQL Server successive a SQL Server 2000 Service Pack 3 (SP3) hanno consegnato la maggior parte degli aggiornamenti rapidi a Query Optimizer in uno stato non predefinito per impedire ai clienti di produzione esistenti di vedere le modifiche previste al piano che potrebbero causare regressioni delle prestazioni. All'inizio, ogni aggiornamento rapido è stato recapitato sotto un contrassegno di traccia separato. In seguito, questa procedura è stata modificata in modo che la maggior parte dei contrassegni sia stata combinata con un singolo flag di traccia (4199). Questa nuova procedura è stata avviata in più versioni a partire dai seguenti aggiornamenti:

  • SQL Server aggiornamento cumulativo 6 del Service Pack 3 (SP3) 2005

  • SQL Server 2008 Service Pack 1 (SP1) pacchetto di aggiornamento cumulativo 7

  • SQL Server 2008 R2 (RTM)

Il flag di traccia 4199 è stato usato per raccogliere gli aggiornamenti rapidi destinati a diventare per impostazione predefinita in una versione futura, mentre altri flag di traccia sono stati usati per le situazioni in cui una correzione non era destinata a diventare predefinita nel modulo corrente. A partire da SQL Server 2016 RTM, verrà usata l'impostazione COMPATIBILITY_LEVEL per abilitare gli aggiornamenti rapidi correlati al flag di traccia 4199 per impostazione predefinita. Questo articolo descrive i meccanismi e i criteri di distribuzione degli aggiornamenti rapidi che influiscono sui piani per SQL Server 2016 e versioni successive.

Ulteriori informazioni

In SQL Server 2016, gli aggiornamenti rapidi 4199 del contrassegno di traccia apportati alle versioni precedenti di SQL Server verranno abilitati nel database COMPATIBILITY_LEVEL 130 senza il contrassegno di traccia 4199 abilitato. Il flag di traccia 4199 verrà usato per rilasciare eventuali aggiornamenti rapidi futuri SQL Server 2016 per i database usando il livello di compatibilità 130. Poiché il contrassegno di traccia 4199 è consigliato solo per i clienti che vedono problemi di prestazioni specifici, è consigliabile rimuovere il contrassegno di traccia 4199 dopo aver eseguito la migrazione dei database al livello di compatibilità più recente perché il contrassegno di traccia 4199 verrà riutilizzato per le correzioni future che potrebbero non essere applicabili all'applicazione e potrebbero causare modifiche impreviste delle prestazioni del piano in un sistema di produzione. Questo significa che gli aggiornamenti rapidi 4199 del contrassegno di traccia diversi sono abilitati per ogni livello di compatibilità supportato in una determinata versione del prodotto. Il livello di compatibilità più recente abilita già tutte le correzioni precedenti con il contrassegno di traccia 4199. Questo significa che l'aggiornamento di un database al livello di compatibilità più recente e la rimozione del flag di traccia 4199 abilitano comunque tutte le correzioni che un carico di lavoro stava sfruttando prima dell'aggiornamento del database, ma non le nuove correzioni. Se in un secondo momento i clienti verificano problemi di prestazioni delle query, provare a abilitare l'opzione con ambito database QUERY_OPTIMIZER_HOTFIXES o l'hint di query ENABLE_QUERY_OPTIMIZER_HOTFIXES in un ambiente di test per determinare se i problemi sono risolti. Vedere la documentazione relativa a QUERY_OPTIMIZER_HOTFIXES

Note Per impostazione predefinita, i database creati in SQL Server 2016 usano il livello di compatibilità 130 e hanno già abilitato una nuova logica di ottimizzatore.

Il vantaggio principale di questo modello è che riduce i rischi per i sistemi di produzione durante il processo di aggiornamento. Questo approccio separa l'installazione di una nuova versione principale di SQL Server dall'abilitazione automatica di tutte le nuove modifiche di Query Processor. Poiché gli aggiornamenti delle versioni principali modificano il formato di file e non sono reversibili, è buona idea usare l'impostazione di COMPATIBILITY_LEVEL, perché questo consente a un cliente di eseguire rapidamente il downgrade se durante un aggiornamento viene rilevato un problema imprevisto di prestazioni del piano. Se un cliente trova una modifica imprevista del piano che blocca l'aggiornamento di un'applicazione, il cliente può semplificare la situazione applicando un suggerimento di piano appropriato usando Query Store per forzare il piano precedente oppure può semplificare la situazione contattando il supporto tecnico Microsoft per assistenza con il problema per fornire una soluzione alternativa o un aggiornamento rapido. Quando tutti i problemi vengono attenuati, l'aggiornamento può continuare. I clienti devono integrare questa funzionalità nella pianificazione dell'aggiornamento per SQL Server 2016.

La tabella seguente illustra il modello per il funzionamento del contrassegno di traccia 4199 a partire da SQL Server 2016.

Impostazione

SQL compatibilità

Flag di traccia 4199

Aggiornamenti rapidi di Optimizer prima SQL Server 2016 RTM

Aggiornamenti rapidi di Optimizer dopo SQL Server 2016 RTM

1.

120

Disattivato

Disabilitato

Disabilitato

2.

120

In

Abilitato

Disabilitato

3.

130

Disattivato

Abilitato dal livello di compatibilità

Disabilitato

4.

130

In

Abilitato dal livello di compatibilità

Abilitato dal livello di compatibilità

Nota L'impostazione n. 3 è consigliata per i clienti che stanno eseguendo l'aggiornamento a SQL Server 2016.

Per i rilasci principali SQL Server 2016, Microsoft prevede di continuare a usare questo modello di manutenzione per gli aggiornamenti rapidi dell'ottimizzatore. Per impostazione predefinita, o ogni rilascio, gli eventuali aggiornamenti rapidi 4199 del flag di traccia della versione precedente verranno abilitati nel livello di compatibilità successivo. Questo significa che lo stato consigliato per i clienti dopo la migrazione al livello di compatibilità più recente sarà il contrassegno di traccia 4199 disabilitato. Gli aggiornamenti rapidi successivi userebbero il contrassegno di traccia 4199 per abilitare le correzioni per i clienti che devono abilitare tali aggiornamenti rapidi specifici in un'applicazione. È consigliabile disabilitare il contrassegno di traccia 4199 dopo l'aggiornamento di un'applicazione al livello di compatibilità più recente per evitare che in un'applicazione siano state attivate modifiche impreviste dell'ottimizzatore future. L'aggiornamento al livello di compatibilità più recente e la rimozione del contrassegno di traccia 4199 abilitano comunque tutte le correzioni che un carico di lavoro stava sfruttando prima dell'aggiornamento, ma non le nuove correzioni.

Note Mentre molti aggiornamenti rapidi dell'ottimizzatore sono abilitati con il flag di traccia 4199, alcuni usano altri flag di traccia. Il flag di traccia 4199 ha coperto storicamente i flag di traccia ampiamente applicabili e che potrebbero essere abilitati per impostazione predefinita in una versione futura. I flag di traccia alternativi vengono usati negli aggiornamenti rapidi in cui le condizioni sono molto specifiche solo per pochi clienti, in cui la correzione può causare regressioni delle prestazioni in altri tipi di applicazioni o in cui la funzionalità interna potrebbe visualizzare le modifiche prima che sia pronta per essere abilitata per tutti. Microsoft continuerà a usare altri flag di traccia in base alle esigenze per il servizio del prodotto.

Nota Questo articolo si concentra sul modello per il rilascio degli aggiornamenti rapidi 4199 del contrassegno di traccia sul livello di compatibilità più recente del prodotto più recente. Al momento della pubblicazione, questo è SQL Server 2016. Gli aggiornamenti rapidi di Optimizer possono essere rilasciati nelle versioni precedenti sul mercato di SQL Server o su livelli di compatibilità inferiori (120 o precedenti) di SQL Server 2016. Microsoft valuterà ogni caso e determinerà se usare il flag di traccia 4199 o un contrassegno di traccia diverso. Poiché le modifiche non rapide vengono abilitate anche quando si passa a un livello di compatibilità successivo, non esiste alcuna promessa specifica che non verranno apportate modifiche al piano durante un aggiornamento (con o senza il flag di traccia 4199). I clienti devono sempre testare attentamente le modifiche al livello di compatibilità per le applicazioni di produzione e usare tecnologie di attenuazione, ad esempio l'Archivio query, se si verifica un problema di prestazioni correlato alla scelta del piano.

Per riferimento, per gli aggiornamenti rapidi di Query Processor sono stati usati i flag di traccia seguenti prima dell'introduzione del flag di traccia 4199:

4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.

SQL Server 2012 e versioni successive

Il contrassegno di traccia 4199 è incluso nelle versioni di rilascio SQL Server 2012 e versioni successive.

Come abilitare il contrassegno di traccia 4199

È possibile abilitare il contrassegno di traccia 4199 all'avvio o in una sessione utente. Questo flag di traccia ha effetto a livello globale o a livello di sessione. Per abilitare il flag di traccia 4199, usare il comando DBCC TRACEON o –T 4199 come parametro di avvio.

Se si usa DBCC TRACEON\TRACEOFF, questo non rigenera un nuovo piano memorizzato nella cache per le stored procedure. I piani potrebbero essere nella cache creati senza il flag di traccia.

Per informazioni dettagliate su come abilitare o disabilitare i flag di traccia e per spiegazioni sui flag di traccia globali e a livello di sessione, vedere gli argomenti seguenti nella documentazione online di SQL Server:

Riferimenti

Per altre informazioni sullo schema di denominazione per SQL Server aggiornamenti, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

822499
Nuovo schema di denominazione per Microsoft SQL Server pacchetti di aggiornamento
software Per altre informazioni sulla terminologia degli aggiornamenti software, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

824684
Descrizione della terminologia standard usata per descrivere gli aggiornamenti software Microsoft

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.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×