Compartilhar via


Sinalizadores de rastreamento (Transact-SQL)

Os sinalizadores de rastreamento são usados para definir temporariamente características de servidor específicas ou para desativar um determinado comportamento. Por exemplo, se o sinalizador de rastreamento 3205 for definido quando uma instância do SQL Server iniciar, a compactação de hardware para drivers de fita será desabilitada. Os sinalizadores de rastreamento são usados com frequência para diagnosticar problemas de desempenho ou depurar procedimentos armazenados ou sistemas de computador complexos.

A tabela a seguir lista e descreve os sinalizadores de rastreamento disponíveis no SQL Server.

Dica

As versões futuras do SQL Server talvez não ofereçam suporte ao comportamento de sinalizador de rastreamento.

Aplica-se a: SQL Server (do SQL Server 2008 à versão atual).

Sinalizador de rastreamento

Descrição

260

Imprime informações de versão sobre DLLs (bibliotecas de vínculo dinâmico) de procedimento armazenado estendido. Para obter mais informações sobre __GetXpVersion(), consulte Criando procedimentos armazenados estendidos.

Escopo: global ou sessão

634

Desabilita a tarefa de compactação columnstore em segundo plano. O SQL Server executa periodicamente uma tarefa em segundo plano que compacta rowgroups do índice columnstore com dados não compactados, compactando um rowgroup de cada vez. A compactação columnstore melhora o desempenho da consulta, mas também consome recursos do sistema. Você pode controlar o tempo da compactação columnstore manualmente, desabilitando a tarefa de compactação em segundo plano com o sinalizador de rastreamento 634, e explicitamente invocando ALTER INDEX REORGANIZE ou ALTER INDEX REBUILD quando achar melhor.

Escopo: somente global

1204

Retorna os recursos e tipos de bloqueios que participam de um deadlock e também o comando atual afetado.

Escopo: somente global

1211

Desabilita o escalonamento de bloqueios com base na pressão de memória ou no número de bloqueios. O Mecanismo de Banco de Dados do SQL Server não escalona bloqueios de linha ou de página para bloqueios de tabela.

O uso desse sinalizador de rastreamento pode gerar um número excessivo de bloqueios. Isso pode reduzir o desempenho do Mecanismo de Banco de Dados ou causar erros 1204 (não é possível alocar recurso de bloqueio) por causa de memória insuficiente.

Se os sinalizadores de rastreamento 1211 e 1224 forem definidos, o 1211 terá precedência sobre o 1224. Entretanto, como o sinalizador de rastreamento 1211 evita o escalonamento em todos os casos, mesmo sob pressão de memória, recomendamos usar 1224. Isso ajuda a evitar erros de "falta de bloqueios" quando muitos bloqueios são usados.

Escopo: global ou sessão

1222

Retorna os recursos e os tipos de bloqueios que participam de um deadlock e também o comando atual afetado, em um formato XML que não obedece a nenhum esquema XSD.

Escopo: somente global

1224

Desabilita o escalonamento de bloqueios com base no número de bloqueios. Entretanto, a pressão de memória ainda pode ativar o escalonamento de bloqueios. O Mecanismo de Banco de Dados escalona bloqueios de linha ou de página para bloqueios de tabela (ou partição) se a quantidade de memória utilizada pelos objetos de bloqueio exceder uma das seguintes condições:

  • Quarenta por cento da memória usada pelo Mecanismo de Banco de Dados. Isso é aplicável somente quando o parâmetro locks de sp_configure é definido como 0.

  • Quarenta por cento da memória de bloqueio que é configurada usando o parâmetro locks de sp_configure. Para obter mais informações, consulte Opções de configuração do servidor (SQL Server).

Se os sinalizadores de rastreamento 1211 e 1224 forem definidos, o 1211 terá precedência sobre o 1224. Entretanto, como o sinalizador de rastreamento 1211 evita o escalonamento em todos os casos, mesmo sob pressão de memória, recomendamos usar 1224. Isso ajuda a evitar erros de "falta de bloqueios" quando muitos bloqueios são usados.

Dica

O escalonamento de bloqueios para a granularidade no nível de tabela ou HoBT também pode ser controlado usando a opção LOCK_ESCALATION da instrução ALTER TABLE.

Escopo: global ou sessão

1448

Permite que o leitor de log de replicação continue mesmo se os secundários assíncronos não reconhecerem a recepção de uma alteração. Mesmo com este sinalizador de rastreamento habilitado, o leitor de log sempre espera pelos secundários de sincronização. O leitor de log não passará do reconhecimento mínimo dos secundários de sincronização. Este sinalizador de rastreamento se aplica à instância do SQL Server, não apenas a um grupo de disponibilidade, um banco de dados de disponibilidade ou uma instância do leitor de log. Entra em vigor imediatamente, sem reinicialização. Este sinalizador de rastreamento pode ser ativado antecipadamente ou quando um secundário assíncrono falha.

2528

Desabilita a verificação paralela de objetos por DBCC CHECKDB, DBCC CHECKFILEGROUP e DBCC CHECKTABLE. Por padrão, o grau de paralelismo é automaticamente determinado pelo processador de consultas. O grau de máximo de paralelismo é configurado da mesma forma que as consultas paralelas. Para obter mais informações, consulte Configurar a opção de configuração de servidor max degree of parallelism.

DBCC paralelo, em geral, deve permanecer habilitado. Para DBCC CHECKDB, o processador de consultas reavalia e automaticamente ajusta o paralelismo em cada tabela ou lote de tabelas verificadas. Às vezes, a verificação pode iniciar quando o servidor está quase ocioso. Um administrador que sabe que a carga aumentará antes que a verificação seja concluída poderá manualmente diminuir ou desabilitar o paralelismo.

Desabilitar a verificação paralela do DBCC pode fazer com que o DBCC leve mais tempo para ser concluído e se o DBCC for executado com o recurso TABLOCK habilitado e o paralelismo definido como off, as tabelas poderão ser bloqueadas por longo tempo.

Escopo: global ou sessão

3042

Ignora o algoritmo padrão de pré-alocação de compactação de backup para permitir que o arquivo de backup cresça somente quando necessário para alcançar seu tamanho final. Este sinalizador de rastreamento será útil se você precisar salvar em espaço alocando somente o tamanho real necessário para o backup compactado. Usar este sinalizador de rastreamento pode causar uma pequena penalidade de desempenho (um possível aumento na duração da operação de backup).

Para obter mais informações sobre o algoritmo de pré-alocação, consulte Compactação de backup (SQL Server).

3205

Por padrão, se uma unidade de fita oferecer suporte à compactação de hardware, a instrução DUMP ou BACKUP a usará. Com esse sinalizador de rastreamento, é possível desabilitar a compactação de hardware para drivers de fita. Isso é útil quando se deseja trocar as fitas por outros locais ou unidades de fita que não oferecem suporte à compactação.

Escopo: global ou sessão

3226

Por padrão, toda operação de backup bem sucedida acrescenta uma entrada no log de erros SQL Server e no log de eventos do sistema. Se você criar backups de log com frequência, essas mensagens se acumularão rapidamente, resultando em enormes logs de erros nos quais será difícil localizar outras mensagens.

Com este sinalizador de rastreamento, você pode suprimir estas entradas de log. Isso é útil se você estiver executando backups de log frequentes e se nenhum dos seus scripts depender dessas entradas.

3608

Impede que o SQL Server seja iniciado automaticamente e recupere qualquer banco de dados, exceto o banco de dados mestre. Os bancos de dados serão iniciados e recuperados quando acessados. Alguns recursos, como isolamento de instantâneo e instantâneo de leitura confirmada, talvez não funcionem. Use para Mover bancos de dados do sistema e Mover bancos de dados de usuário. Não use durante operação normal.

3625

Limita a quantidade de informações retornadas aos usuários que não são membros da função de servidor fixa sysadmin, mascarando os parâmetros de algumas mensagens de erro usando '******'. Isso pode ajudar a evitar a divulgação de informações confidenciais.

Escopo: somente global

4199

Controla várias alterações do otimizador de consulta feitas anteriormente em vários sinalizadores de rastreamento. Para obter mais informações, consulte este artigo do Suporte da Microsoft

Escopo: global ou sessão

4616

Torna os metadados em nível de servidor visíveis para funções de aplicativo. No SQL Server, uma função de aplicativo não pode acessar metadados fora de seu próprio banco de dados porque as funções de aplicativo não são associadas a um principal em nível de servidor. É uma alteração de comportamento de versões anteriores do SQL Server. Definir esse sinalizador global desabilita as novas restrições e permite que funções de aplicativo acessem metadados em nível de servidor.

Escopo: somente global

6527

Desabilita a geração de um despejo de memória na primeira ocorrência de uma exceção de memória insuficiente na integração de CLR. Por padrão, o SQL Server gera um despejo de memória pequeno na primeira ocorrência de uma exceção de memória insuficiente no CLR. O comportamento do sinalizador de rastreamento é:

  • Se isso for usado como um sinalizador de rastreamento de inicialização, um despejo de memória nunca será gerado. No entanto, um despejo de memória poderá ser gerado se forem usados outros sinalizadores de rastreamento.

  • Se esse sinalizador de rastreamento estiver habilitado em um servidor em execução, um despejo de memória não será gerado automaticamente a partir desse ponto. No entanto, se um despejo de memória já tiver sido gerado devido a uma exceção de memória insuficiente no CLR, este sinalizador de rastreamento não terá nenhum efeito.

Escopo: somente global

7806

Habilita uma conexão de administrador dedicada (DAC) no SQL Server Express. Por padrão, nenhum recurso DAC é reservado no SQL Server Express. Para obter mais informações, consulte Conexão de diagnóstico para administradores de banco de dados.

Escopo: somente global

8032

Reverte os parâmetros de limite de cache para a configuração do SQL Server 2005 RTM, que, em geral, permite que os caches sejam maiores. Use esta configuração quando entradas de cache reutilizadas com frequência não se ajustarem no cache e quando o Opção de configuração de servidor optimize for ad hoc workloads não tiver resolvido o problema com o cache do plano.

Aviso

O sinalizador de rastreamento 8032 pode levar a um baixo desempenho se caches grandes disponibilizam menos memória para outros consumidores de memória, como o pool de buffers.

8207

Habilita atualizações singleton para replicação transacional. As atualizações nos assinantes podem ser replicadas como um par de DELETE e INSERT. Isso pode não atender a regras de negócio, como acionar um gatilho UPDATE. Com o sinalizador de rastreamento 8207, uma atualização em uma coluna exclusiva que afeta apenas uma linha (uma atualização singleton) é replicada como um UPDATE e não como um par DELETE ou INSERT. Se a atualização afetar uma coluna com uma restrição exclusiva ou se a atualização afetar várias linhas, a atualização ainda será replicada como um par DELETE ou INSERT.

9485

Desabilita a permissão SELECT para DBCC SHOW_STATISTICS.

Comentários

No SQL Server, há dois tipos de sinalizadores de rastreamento: sessão e global. Os sinalizadores de rastreamento de sessão são ativos para uma conexão e são visíveis apenas para essa conexão. Sinalizadores de rastreamento globais são definidos no nível do servidor e são visíveis em todas as conexões no servidor. Alguns sinalizadores podem ser ativados somente como global e outros podem ser ativados no escopo global ou de sessão.

As seguintes regras se aplicam:

  • Um sinalizador de rastreamento global deve ser habilitado globalmente. Caso contrário, ele não terá nenhum efeito. Recomendamos que você habilite sinalizadores de rastreamento globais na inicialização, usando a opção de linha de comando -T.

  • Se um sinalizador de rastreamento tiver escopo global ou de sessão, ele poderá ser ativado com o escopo apropriado. Um sinalizador de rastreamento habilitado no nível de sessão nunca afeta outra sessão, e seu efeito se perde quando a SPID que abriu a sessão faz logoff.

Sinalizadores de rastreamento são definidos como on ou off usando qualquer um dos seguintes métodos:

  • Usando os comandos DBCC TRACEON e DBCC TRACEOFF.

    Por exemplo, DBCC TRACEON 2528: para habilitar o sinalizador de rastreamento globalmente, use DBCC TRACEON com o argumento -1: DBCC TRACEON (2528, -1). Para desativar um sinalizador de rastreamento global, use DBCC TRACEOFF com o argumento -1.

  • Usando a opção de inicialização -T para especificar que o sinalizador de rastreamento seja definido como on durante inicialização.

    A opção de inicialização -T habilita um sinalizador de rastreamento globalmente. Não é possível habilitar um sinalizador de rastreamento no nível de sessão usando uma opção de inicialização. Para obter mais informações sobre opções de inicialização, consulte Opções de inicialização do serviço Mecanismo de Banco de Dados.

Use o comando DBCC TRACESTATUS para determinar quais sinalizadores de rastreamento estão ativos atualmente.

Exemplos

O exemplo a seguir define o sinalizador de rastreamento 3205 como on com o uso de DBCC TRACEON.

DBCC TRACEON (3205,-1);

Consulte também

Referência

Tipos de dados (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)