Al momento sei offline in attesa che la connessione Internet venga ristabilita

Consentono di influire sul piano di SQL Server query optimizer comportamento che può essere controllato tramite il flag di traccia diverso a livello di query specifica

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

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
Introduzione
A partire da Microsoft SQL Server 2000 Service Pack 3 (SP3), di SQL Server, team di processore di query adottato un criterio che prevede un hotfix che potrebbero compromettere l'esecuzione di una query deve essere controllato da un flag di traccia. Ad eccezione delle correzioni di bug che possono causare risultati errati o danneggiati, questi aggiornamenti rapidi sono disattivati per impostazione predefinita e un flag di traccia è necessario attivare la correzione. Questo criterio consente di evitare modifiche impreviste ai piani di esecuzione di carichi di lavoro esistenti che possono verificarsi quando si installa un hotfix o un aggiornamento della protezione.

In genere i flag di traccia sono abilitati all'avvio o in una sessione utente. Tuttavia, ciò potrebbe essere effetti imprevisti su alcune query in un'applicazione di database esistente. Si consideri ad esempio un'applicazione o un carico di lavoro che include più query e alcune di queste query utilizzare un piano di esecuzione di query inefficienti che è stato migliorato, consentendo un flag di traccia che controlla una correzione corrispondente. Tuttavia, altre query potrebbero verificarsi un piano di esecuzione meno ottimale quando viene applicato lo stesso flag di traccia. In questo modo la scelta di piano di esecuzione influisce su tutte le query che vengono compilate nell'istanza o la sessione quando corrispondente flag di traccia è attivata. A seconda della query e i dati, modificando i modelli che vengono utilizzati da query optimizer potrebbe migliorare sia diminuire piano efficienza e la compilazione tempo di esecuzione per determinate query.

Se un flag di traccia ha effetto su qualsiasi piano di esecuzione di query in modo indesiderato, ma migliora alcuni altri piano di esecuzione, si consiglia di attivare un flag di traccia corrispondente per una particolare query. È possibile farlo attivando il flag di traccia di un diritto di batch (utilizzando il comando DBCC TRACEON) prima della query di destinazione e quindi disattivando il diritto di contrassegno (utilizzando il comando DBCC TRACEOFF) traccia dopo la query. Tuttavia, ciò potrebbe non essere sempre possibile controllare il testo di batch Transact-SQL per le applicazioni esistenti. Si possono verificare le prestazioni delle query in un carico di lavoro esistente e applicare una modifica che interessa piano disponibile a una query senza modificare il testo batch stesso. È possibile farlo utilizzando 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 il flag di traccia influire sul piano solo durante la compilazione di query singolo. Come le altre opzioni a livello di query, utilizzarlo con guide di piano per il testo di una query in fase di esecuzione 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 query che consente una modifica che interessa piano di query optimizer controllata da un flag di traccia. Il suggerimento QUERYTRACEON viene specificato come parte della clausola OPTION simile agli altri hint per la query.

Sintassi

<querytraceon_hint> ::=       { QUERYTRACEON trace_flag_number }

Argomenti

QUERYTRACEON trace_flag_number

Questa specifica un numero di flag traccia influire sul piano è attivato durante la compilazione della query. Sono supportati i seguenti numeri di flag di traccia:
Flag di traccia Articolo della Microsoft Knowledge BaseDisponibile in
4199974006Aggiornamento 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.
Rientrano nel campo tutti i flag di traccia 4199974006Aggiornamento 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.
23352413549SQL Server 2005 e versioni successive.
23402009160SQL Server 2005 e versioni successive.
2389, 2390NessunoSQL Server 2005 e versioni successive. Per un problema noto di SQL Server 2005, vedere ambienti 929278.
4136980653Aggiornamento cumulativo 9 per SQL Server 2005 Service Pack 3;
Aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 1.
2 aggiornamento cumulativo per SQL Server 2008 R2 e versioni successive.
41372658214Aggiornamento 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.
41382667211Aggiornamento 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;
2 aggiornamento cumulativo per SQL Server 2012 e versioni successive...


I seguenti flag di traccia che influiscono sulla piano sono disponibili in Microsoft SQL Server 2014:
Flag di tracciaDescrizione
9481Utilizzare quando si esegue SQL Server 2014 con il livello di compatibilità del database predefinito 120. Il flag di traccia 9481 in query optimizer impone di utilizzare 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. Il flag di traccia 2312 in query optimizer impone di utilizzare 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 diversi dai flag di traccia che sono elencati nella tabella. 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 è ha effetto su un piano di esecuzione, l'opzione verrà ignorata.

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


Esecuzione di una query con l'opzione QUERYTRACEON richiede l'appartenenza al ruolo predefinito del server sysadmin.


È possibile utilizzare l'opzione QUERYTRACEON Guide di piano.
Esempi
  • È possibile attivare tutti gli hotfix influire sul 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 influire sul 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)

Proprietà

ID articolo: 2801413 - Ultima revisione: 01/20/2016 10:56:00 - Revisione: 3.0

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

  • kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtit
Feedback