DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 2801413 - Ultima modifica: venerdì 25 aprile 2014 - Revisione: 2.0

 

Introduzione

A partire da Microsoft SQL Server 2000 Service Pack 3 (SP3) di SQL Server team del processore di query adottato un criterio che prevede di qualsiasi hotfix che potrebbero compromettere l'esecuzione di una query deve essere controllato da un flag di traccia. Ad eccezione di correzioni di bug che possono causare risultati non corretti o danneggiamento, questi aggiornamenti rapidi sono disattivati per impostazione predefinita e un flag di traccia è necessario per attivare la correzione. Questo criterio consente di evitare modifiche impreviste ai piani di esecuzione di carichi di lavoro esistenti che possono verificarsi quando è installato un hotfix o un aggiornamento della protezione.

Flag di traccia vengono in genere abilitati all'avvio o in una sessione utente. Tuttavia, questo può verificarsi effetti imprevisti su alcune query in un'applicazione di database esistente. Ad esempio, si consideri un'applicazione o un carico di lavoro che include più query e alcune di queste query utilizzare un piano di esecuzione di query inefficienti migliorato mediante l'attivazione di un flag di traccia che controlla una correzione corrispondente. Tuttavia, altre query potrebbero verificarsi un piano di esecuzione ottimale quando viene applicato lo stesso flag di traccia. Infatti, la scelta del piano di esecuzione influisce su tutte le query che vengono compilate nell'istanza o la sessione quando il corrispondente flag di traccia è attivata. In base alla query e i dati, modificare i modelli che vengono utilizzati da query optimizer potrebbe migliorare sia ridurre tempo esecuzione piano l'efficienza e la compilazione per le query particolare.

Se un flag di traccia ha effetto su qualsiasi piano di esecuzione di query in modo indesiderato, ma consente di migliorare alcuni altri piano di esecuzione di query, è possibile attivare un flag di traccia corrispondente per una particolare query. Tale scopo, attivando il flag di traccia in un diritto di batch (utilizzando il comando DBCC TRACEON) prima della query di destinazione e quindi disattivando il diritto di flag (utilizzando il comando DBCC TRACEOFF) traccia dopo la query. Tuttavia, ciò non sia sempre possibile controllare il testo di batch Transact-SQL per le applicazioni esistenti. Si possono verificare la query a scarse prestazioni in un carico di lavoro esistente e applicare un cambiamento di influire sul piano disponibile a una query senza modificare il testo batch stesso. È possibile farlo mediante un'opzione a livello di query per attivare un flag di traccia per una particolare query.

A partire da Microsoft SQL Server 2005 Service Pack 2 (SP2) e Microsoft SQL Server 2008, l'opzione di query a livello di "QUERYTRACEON" è disponibile. Questa opzione consente di attivare un flag di traccia che interessa piano solo durante la compilazione di query singolo. Come le altre opzioni di query a livello di utilizzarlo con guide di piano per trovare il testo di una query viene eseguita da qualsiasi sessione e applicare automaticamente un flag di traccia influire sul piano quando questa query in fase di compilazione.

Informazioni

Il suggerimento QUERYTRACEON è disponibile come un hint per la query che consente una modifica che interessa piano in query optimizer è controllato da un flag di traccia. Viene specificato l'hint QUERYTRACEON come parte della clausola OPTION simile agli altri hint per la query (http://msdn.microsoft.com/en-us/library/ms181714.aspx) .

Sintassi

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

Argomenti

QUERYTRACEON trace_flag_number

Specifica un numero di flag di traccia influire sul piano che viene attivato durante la compilazione della query. Sono supportati i seguenti numeri di flag di traccia:
Riduci questa tabellaEspandi questa tabella
Flag di traccia Articolo della Microsoft Knowledge BaseDisponibile in
4199974006  (http://support.microsoft.com/kb/974006/ ) Aggiornamento cumulativo 6 per SQL Server 2005 Service Pack 3;
Aggiornamento cumulativo 7 per SQL Server 2008;
Aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 1.
SQL Server 2008 R2 e versioni successive.
Oggetto tutti i flag di traccia 4199974006  (http://support.microsoft.com/kb/974006/ ) Aggiornamento cumulativo 6 per SQL Server 2005 Service Pack 3;
Aggiornamento cumulativo 7 per SQL Server 2008;
Aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 1.
SQL Server 2008 R2 e versioni successive.
23352413549  (http://support.microsoft.com/kb/2413549/ ) SQL Server 2005 e versioni successive.
23402009160  (http://support.microsoft.com/kb/2009160/ ) SQL Server 2005 e versioni successive.
2389, 2390NessunoSQL Server 2005 e versioni successive. Per un problema noto di SQL Server 2005, vedere ambienti 929278.  (http://support.microsoft.com/kb/929278/en-us/ )
4136980653  (http://support.microsoft.com/kb/980653/ ) Aggiornamento cumulativo 9 per SQL Server 2005 Service Pack 3;
Aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 1.
Aggiornamento cumulativo 2 per SQL Server 2008 R2 e versioni successive.
41372658214  (http://support.microsoft.com/kb/2658214/ ) Aggiornamento cumulativo 8 per SQL Server 2008 Service Pack 2;
Aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 3;
Aggiornamento cumulativo 5 per SQL Server 2008 R2 Service Pack 1.
Aggiornamento cumulativo 1 per SQL Server 2012 e versioni successive.
41382667211  (http://support.microsoft.com/kb/2667211/ ) Aggiornamento cumulativo 13 per SQL Server 2008 R2;
Aggiornamento cumulativo 7 per SQL Server 2008 R2 Service Pack 1.
Aggiornamento cumulativo 1 per SQL Server 2008 R2 Service Pack 2;
Aggiornamento cumulativo 2 per SQL Server 2012 e versioni successive..


I seguenti flag di traccia che influiscono sulla piano sono disponibili in Microsoft SQL Server 2014:
Riduci questa tabellaEspandi questa tabella
Flag di tracciaDescrizione
9481Utilizzare quando si esegue SQL Server 2014 con livello di compatibilità del database predefinito 120. Flag di traccia 9481 impone in query optimizer per utilizzare la versione 70 (la versione di SQL Server 2012) dello stimatore cardinalità durante la creazione del piano di query.
2312Utilizzare quando si esegue SQL Server 2014 con livello di compatibilità del database 110, ovvero il livello di compatibilità di SQL Server 2012. Flag di traccia 2312 impone in query optimizer per utilizzare la versione 120 (la versione di SQL Server 2014) dello stimatore cardinalità durante la creazione del piano di query.

Note

L'opzione QUERYTRACEON non è supportata per i flag di traccia elencati nella tabella i flag di traccia. Tuttavia, questa opzione non restituirà alcun errore o un avviso se viene utilizzato un numero di flag di traccia non supportato. Se il flag di traccia specificata non è un'operazione che riguarda un piano di esecuzione, l'opzione sarà ignorata.

Uno o più flag di traccia può essere specificato nella clausola OPTION se QUERYTRACEON trace_flag_number è il duplicato di numeri di flag di traccia diverso.

L'opzione QUERYTRACEON può essere utilizzato in Guide di piano (http://msdn.microsoft.com/en-us/library/ms190417.aspx) .

Esempi

  • È possibile attivare tutti gli hotfix che interessa piano controllati dal flag di traccia 4199 per una particolare query. Ad esempio, è possibile utilizzare la seguente query:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • È possibile attivare tutti gli hotfix che interessa piano controllati dal flag di traccia 4199 e 4137 per una particolare query. Ad esempio, è possibile utilizzare la seguente query:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
Chiavi: 
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2801413  (http://support.microsoft.com/kb/2801413/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store