As trace flags são utilizadas para mudar uma característica da instância de SQL Server ou um comportamento em particular.
Elas também são utilizadas em diagnósticos de problemas de desempenho, debug de stored procedures ou até mesmo podem ser recomendadas pelo suporte da Microsoft para corrigir um comportamento específico que esteja impactando negativamente o seu ambiente.
É uma boa prática sempre realizar o teste da trace flag em um ambiente não-produtivo, assim como é uma boa prática realizar o teste em ambiente não-produtivo de qualquer alteração de configuração na sua instância de SQL Server.
Existem 3 escopos para uma trace flag:
1. query: específicas para o contexto de uma consulta.
2. session: ativas para uma conexão específica e são visíveis apenas dentro desta sessão.
3. global: são ativas para toda a instância de SQL Server e visíveis para todas as conexões.
As trace flags de escopo de sessão (session) são ligadas e desligadas com os comandos abaixo:
Como ligar uma trace flag de sessão:
DBCC TRACEON (3604)
Como desligar uma trace flag de sessão:
DBCC TRACEOFF (3604)
Para ligarmos e desligarmos uma trace flag de escopo global utilizamos os mesmos comandos, mas com um parâmetro adicional, conforme abaixo.
Como ligar uma trace flag global:
DBCC TRACEON (1222, -1)
Como desligar uma trace flag global:
DBCC TRACEOFF (1222, -1)
Precisa listar todas as trace flags ativas no seu ambiente e sessão?
Listar TRACE FLAGS ativas
Você utiliza alguma trace flag no seu ambiente?
Comente as trace flags que você utiliza!
Referências:
Trace flags: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql
DBCC TRACEON: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-transact-sql
DBCC TRACEOFF: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceoff-transact-sql