Hoje escreverei a vocês como consegui Melhorar a contenção na tempdb do SQL Server.
Durante uma visita recente, o cliente explicou que o desempenho em seu sistema relativamente pequeno era especialmente lento na segunda-feira de manhã, mas geralmente era ruim naquele dia inteiro.
A instância do SQL Server 2008 R2, que é executada em uma máquina virtual, tem 30 GB de RAM alocados, mas o uso de memória do SQL Server nunca excede 16 GB.
Indo mais a fundo, descobrimos que 98% de todo o I / O foi consumido pelo tempdb, então descobrimos que o sistema fazia uso extensivo de tabelas temporárias e variáveis de tabela em suas consultas.
O arquivo de dados tempdb gira em torno de 2,5 GB e o arquivo de log está em torno de 1,5 GB. Certamente não é um banco de dados enorme e intrigante porque esta pequena empresa está enfrentando problemas de desempenho.
Tudo se encaixa na memória! Que é rápido!
Observamos que a instância do SQL Server foi reiniciada no domingo anterior, como parte de um ciclo de manutenção, e que a alocação de arquivos para tempdb foi definida como os padrões:
8MB para arquivo de dados, 10% de crescimento
1 MB para arquivo de log, 10% de crescimento
Em outras palavras, não importa o tamanho do banco de dados tempdb antes do reinício, ele sempre diminuiria para esse tamanho minúsculo, precisando zerar o arquivo de log quando ele crescesse novamente.
Para chegar ao tamanho que era hoje, o tempdb tinha que aumentar o arquivo de dados 60 vezes e o arquivo de log 77 vezes. Cada vez demorou 10% a mais do que antes para crescer, exigindo 10% a mais de espaço.
É importante observar que o SQL Server não possui nenhum sinalizador de rastreamento global ativado, em particular, o TF1118.
A cada meia hora, uma captura instantânea da máquina virtual é obtida, congelando a E / S no servidor também.
Saiba como a função UPPER() no SQL Server pode degradar a performance das suas consultas…
Descobrir uso de CPU no SQL Server Saiba como descobrir uso de CPU no SQL…
Saiba agora mesmo como você pode diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server. Recentemente eu trabalhei em…
Nós DBA' e desenvolvedores quase sempre temos que trabalhar com datas quando se trata de…
Quais são as diferentes maneiras de proteger o login Senha do Administrador (SA)? Todos estão…
Com os direitos que o login sa tem por padrão no SQL Server, é obrigatório…