SQL Server Trace Flags – sinalizadores de rastreamento
Neste post, estamos descrevendo os principais flag's utilizados para ajustes de desempenho no SQL Server. Se voce ainda não conhece sobre os traces de rastreamento, fizemos uma introdução neste post anterior, confere lá .....
SQL Server Trace Flags – sinalizadores de rastreamento
DBCC FLAG - 174
Aumenta o número de buckets do cache de planos do Mecanismo de Banco de Dados do SQL Server de 40.009 para 160.001 em sistemas de 64 bits. Observação: Teste essa opção completamente antes de implantá-la em um ambiente de produção.
Escopo: apenas global
DBCC FLAG - 818
Permite diagnósticos de E/S adicionais para verificar se há condições de perda de gravação ou leitura obsoleta durante operações de E/S de arquivo. O sinalizador de rastreamento 818 habilita um buffer de anéis na memória usado para acompanhar as últimas 2.048 operações de gravação bem-sucedidas realizadas pelo SQL Server, sem incluir E/Ss de classificação e arquivo de trabalho. Quando ocorrerem erros como o Erro 605, 823 ou 3448, o valor do LSN (número de sequência de log) do buffer de entrada será comparado com a lista de gravação recente. Se o LSN recuperado for mais antigo do que aquele especificado durante a operação de gravação, uma nova mensagem de erro será registrada no log de erros do SQL Server.
Observação: Do SQL Server 2017 (14.x) em diante, esse sinalizador de rastreamento não tem nenhum efeito.
Escopo: apenas global
DBCC FLAG - 834
Usa as alocações de página grande para o pool de buffers, columnstore e tabelas na memória. O tamanho de página grande varia dependendo da plataforma de hardware, mas ele pode ter de 2 MB a 16 MB. As páginas grandes são alocadas na inicialização e são mantidas durante todo o tempo de vida do processo. O sinalizador de rastreamento 834 aprimora o desempenho aumentando a eficiência do TLB (translation look-aside buffer) na CPU. Em outras palavras, o sinalizador de rastreamento 834 aumenta a eficiência do gerenciamento da conversão de endereços de memória física para virtual que é executada pelo hardware de gerenciamento de memória.
Observação: O sinalizador de rastreamento 834 se aplica somente às versões de 64 bits do SQL Server. Você precisa ter o direito de usuário de Bloquear páginas na memória a fim de ativar o sinalizador de rastreamento 834. Você só pode ativar o sinalizador de rastreamento 834 na inicialização. O sinalizador de rastreamento 834 poderá impedir que o servidor seja iniciado se a memória estiver fragmentada e não for possível alocar páginas grandes. Portanto, o sinalizador de rastreamento 834 é mais adequado para servidores dedicados ao SQL Server.
Observação: Quando habilitado, o modelo de memória de página grande pré-aloca toda a memória SQLOS na inicialização de instância e não retorna essa memória para o sistema operacional.
Observação: Se você estiver usando o recurso de Índice Columnstore de SQL Server 2012 (11.x) a SQL Server 2019 (15.x), não recomendamos ativar o sinalizador de rastreamento 834.
Escopo: apenas global
DBCC FLAG - 836
Use a opção máxima de memória do servidor para o pool de buffers. O sinalizador de rastreamento 836 faz com que SQL Server dimensione o pool de buffers na inicialização com base no valor da opção máxima de memória do servidor e não na memória física total. Você pode usar o sinalizador de rastreamento 836 para reduzir o número de descritores de buffer que são alocados na inicialização no modo AWE (Address Windowing Extensions) de 32 bits.
Observação: O sinalizador de rastreamento 836 se aplica somente às versões de 32 bits do SQL Server que têm a alocação AWE habilitada. Você só pode ativar o sinalizador de rastreamento 836 na inicialização.
Escopo: apenas global
DBCC FLAG - 2312
Define o modelo de estimativa de cardinalidade do otimizador de consulta para o SQL Server 2014 (12.x) e as versões posteriores, dependendo do nível de compatibilidade do banco de dados.
Observação: Se o nível de compatibilidade do banco de dados for inferior a 120, habilitar o sinalizador de rastreamento 2312 usará o modelo de estimativa de cardinalidade de SQL Server 2014 (12.x) (120). Para obter mais informações, confira este artigo do Suporte da Microsoft.
Começando com o SQL Server 2016 (13.x) SP1, para fazer isso no nível da consulta, adicione a dica de consulta USE HINT 'FORCE_DEFAULT_CARDINALITY_ESTIMATION' em vez de usar o sinalizador de rastreamento.
Escopo: global, sessão ou consulta (QUERYTRACEON)
DBCC FLAG - 9481
Permite definir o modelo de estimativa de cardinalidade do otimizador de consulta para o SQL Server 2012 (11.x) e versões anteriores, independentemente do nível de compatibilidade do banco de dados. Para obter mais informações, confira este artigo do Suporte da Microsoft.
Começando com SQL Server 2016 (13.x), para fazer isso no nível do banco de dados, confira a opção LEGACY_CARDINALITY_ESTIMATION em ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL).
Começando com o SQL Server 2016 (13.x) SP1, para fazer isso no nível da consulta, adicione a dica de consulta USE HINT 'FORCE_LEGACY_CARDINALITY_ESTIMATION' em vez de usar o sinalizador de rastreamento.
Escopo: global, sessão ou consulta (QUERYTRACEON)
Em breve retornamos com mais dicas de Trace flag's.
Bons estudos.