Flag di traccia (Transact-SQL)
Data aggiornamento: 15 settembre 2007
I flag di traccia vengono utilizzati per impostare temporaneamente caratteristiche del server specifiche o per disattivare una particolare funzionalità. Se, ad esempio, all'avvio di un'istanza di SQL Server 2005 viene impostato il flag di traccia 3205, la compressione hardware per le unità nastro risulta disattivata. I flag di traccia vengono spesso utilizzati per diagnosticare problemi di prestazioni o per eseguire il debug di stored procedure o sistemi complessi.
Nella tabella seguente vengono elencati e descritti i flag di traccia disponibili in SQL Server 2005.
[!NOTA] È possibile che il comportamento dei flag di traccia non sia supportato nelle versioni future di SQL Server.
Flag di traccia | Descrizione |
---|---|
260 |
Visualizza informazioni sulla versione delle librerie di collegamento dinamico delle stored procedure estese. Per ulteriori informazioni su __GetXpVersion(), vedere Creating Extended Stored Procedures. Ambito: globale o sessione |
1204 |
Restituisce le risorse e i tipi di blocco coinvolti in un deadlock nonché il comando corrente interessato. Ambito: solo globale |
1211 |
Disattiva l'escalation di blocchi in base al numero di richieste di memoria o al numero di blocchi. L'escalation di blocchi a livello di riga o di pagina in blocchi a livello di tabella non verrà eseguita in Motore di database di SQL Server 2005. L'utilizzo di questo flag di traccia può generare un numero eccessivo di blocchi, il che può a sua volta causare un rallentamento delle prestazioni di Motore di database oppure errori 1204 di mancata allocazione delle risorse di blocco a causa di problemi di memoria insufficiente. Per ulteriori informazioni, vedere Escalation dei blocchi (Motore di database). Se vengono impostati entrambi i flag di traccia 1211 e 1224, 1211 ha la precedenza rispetto a 1224. Poiché il flag di traccia 1211 impedisce l'escalation in tutti i casi, anche in condizioni di scarsa disponibilità di memoria, è tuttavia consigliabile utilizzare 1224. In questo modo è possibile evitare errori determinati dal superamento del numero di blocchi consentito. Ambito: globale o sessione |
1222 |
Restituisce le risorse e i tipi di blocco coinvolti in un deadlock nonché il comando corrente interessato in un formato XML non conforme ad alcuno schema XSD. Ambito: solo globale |
1224 |
Disattiva l'escalation di blocchi in base al numero di blocchi. L'escalation di blocchi, tuttavia, può comunque essere attivata dal numero di richieste di memoria. Il Motore di database esegue l'escalation dei blocchi a livello di riga o di pagina in blocchi a livello di tabella se la quantità di memoria utilizzata dagli oggetti blocco supera una delle condizioni seguenti:
Se vengono impostati entrambi i flag di traccia 1211 e 1224, 1211 ha la precedenza rispetto a 1224. Poiché il flag di traccia 1211 impedisce l'escalation in tutti i casi, anche in condizioni di scarsa disponibilità di memoria, è tuttavia consigliabile utilizzare 1224. In questo modo è possibile evitare errori determinati dal superamento del numero di blocchi consentito. Ambito: globale o sessione |
2528 |
Disattiva il controllo parallelo di oggetti eseguito da DBCC CHECKDB, DBCC CHECKFILEGROUP e DBCC CHECKTABLE. Per impostazione predefinita, il grado di parallelismo viene determinato automaticamente da Query Processor. Il grado massimo di parallelismo viene configurato come quello delle query parallele. Per ulteriori informazioni, vedere Opzione max degree of parallelism. In genere, la funzionalità di parallelismo DBCC deve essere attivata. Nel caso di DBCC CHECKDB, Query Processor rivaluta e regola automaticamente il parallelismo per ogni tabella o batch di tabelle controllato. In alcuni casi il controllo viene avviato quando il server è quasi inattivo. Se un amministratore prevede un aumento del carico di lavoro prima del completamento del controllo, deve diminuire o disattivare il parallelismo in modo manuale. La disattivazione del controllo parallelo, tuttavia, può comportare una diminuzione delle prestazioni generali del database. La diminuzione del grado di parallelismo comporta un aumento della sezione del log delle transazioni da sottoporre a scansione, il che provoca a sua volta una maggiore richiesta di spazio per tempdb e un aumento non lineare del tempo necessario per il completamento dei controlli da parte di DBCC. Se si esegue DBCC con la funzionalità TABLOCK attivata e il parallelismo disattivato, le tabelle potrebbero risultare bloccate per un periodo di tempo prolungato. Ambito: globale o sessione |
3205 |
Per impostazione predefinita, se un'unità nastro supporta la compressione hardware, l'istruzione DUMP o BACKUP applica questo tipo di compressione. Questo flag di traccia consente di disattivare la compressione hardware per le unità nastro e risulta utile quando si desidera scambiare nastri con altri siti oppure unità nastro che non supportano la compressione. Ambito: globale o sessione |
3625 |
Limita la quantità di informazioni restituita nei messaggi di errore. Per ulteriori informazioni, vedere Configurazione della visibilità dei metadati. Ambito: solo globale |
4616 |
Garantisce la visibilità dei metadati a livello di server per i ruoli applicazione. In SQL Server 2005, poiché i ruoli applicazione non sono associati a un'entità a livello di server, un ruolo applicazione non può accedere a metadati all'esterno del database corrispondente, diversamente da quanto consentito nelle versioni precedenti di SQL Server. Impostando questo flag globale vengono disattivate le nuove restrizioni e viene consentito ai ruoli applicazione di accedere ai metadati a livello di server. Ambito: solo globale |
7806 |
Attiva una connessione amministrativa dedicata (DAC, Dedicated Administrator Connection) in SQL Server Express. Per impostazione predefinita, nessuna risorsa DAC è riservata in SQL Server Express. Per ulteriori informazioni, vedere Utilizzo di una connessione amministrativa dedicata. Ambito: solo globale |
Osservazioni
In SQL Server 2005 vi sono due tipi di flag di traccia: di sessione e globali. I flag di traccia di sessione sono attivi per una connessione e sono visibili solo per tale connessione. I flag di traccia globali vengono impostati a livello del server e sono visibili per tutte le connessioni nel server. Alcuni flag possono essere attivati solo in ambito globale, mentre altri possono essere attivati in ambito globale o sessione.
Sono applicabili le regole seguenti:
- Un flag di traccia globale deve essere attivato a livello globale. In caso contrario, non ha alcun effetto. È consigliabile attivare i flag di traccia globali all'avvio utilizzando l'opzione della riga di comando -T.
- Un flag di traccia con ambito globale o sessione può essere attivato con l'ambito appropriato. Un flag di traccia attivato a livello di sessione non influisce mai sulle altre sessioni e l'effetto viene perso alla disconnessione dello SPID che ha aperto la sessione.
I flag di traccia possono essere attivati o disattivati in uno dei modi seguenti:
- Tramite i comandi DBCC TRACEON e DBCC TRACEOFF.
Si consideri, ad esempio, DBCC TRACEON 2528. Per attivare il flag di traccia a livello globale, utilizzare DBCC TRACEON con l'argomento -1:DBCC TRACEON 2528, -1
. Per disattivare un flag di traccia globale, utilizzare DBCC TRACEOFF con l'argomento -1. - Tramite l'opzione di avvio -T se si desidera che il flag di traccia venga impostato durante l'avvio.
L'opzione di avvio -T consente di attivare un flag di traccia a livello globale. Non è possibile attivare un flag di traccia a livello di sessione tramite un'opzione di avvio. Per ulteriori informazioni sulle opzioni di avvio, vedere Utilizzo delle opzioni di avvio del servizio SQL Server.
Per verificare i flag di traccia attivi, utilizzare il comando DBCC TRACESTATUS.
Differenze di funzionamento
In SQL Server 2000 è sufficiente utilizzare un semplice flag DBCC TRACEON (1204) per includere le informazioni sui deadlock nel log degli errori. In SQL Server 2005 è necessario attivare il flag a livello globale, poiché il flag a livello di sessione non è visibile per il thread di monitoraggio dei deadlock.
Per ulteriori informazioni sulle differenze di funzionamento, vedere Modifiche che possono causare problemi di funzionamento apportate alle funzionalità del Motore di database in SQL Server 2005..
Esempi
Nell'esempio seguente viene attivato il flag di traccia 3205
tramite il comando DBCC TRACEON
.
DBCC TRACEON (3205,-1)
Vedere anche
Riferimento
Tipi di dati (Transact-SQL)
DBCC INPUTBUFFER (Transact-SQL)
DBCC OUTPUTBUFFER (Transact-SQL)
DBCC TRACEOFF (Transact-SQL)
DBCC TRACEON (Transact-SQL)
DBCC TRACESTATUS (Transact-SQL)
EXECUTE (Transact-SQL)
SELECT (Transact-SQL)
SET NOCOUNT (Transact-SQL)
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
15 settembre 2007 |
|
14 aprile 2006 |
|
5 dicembre 2005 |
|