Nosso banco de dados de aplicativos de fornecedores é muito intensivo em TempDB.
O servidor é virtual (VMWare) com 40 núcleos e 768 GB de RAM, executando o SQL 2012 Enterprise SP3.
Todos os bancos de dados, incluindo o TempDB, estão no SSD de camada 1 na SAN. Temos 10 arquivos de dados tempdb, cada um pré-aumentado para 1 GB e eles nunca aumentam automaticamente. Mesmo com arquivo de log de 70 GB. Os sinalizadores de rastreamento 1117 e 1118 já estão definidos.
sys.dm_io_virtual_file_stats mostra mais de 50 Terabytes lidos / gravados em dados tempdb e arquivos de log no mês passado, com io_stall acumulado de 250 horas ou 10 dias.
Já ajustamos o código e os SPs do fornecedor nos últimos 2 anos.
Agora, estamos pensando em colocar arquivos tempdb no RAM Drive, pois temos uma tonelada de memória. Como o tempdb é destruído / recriado quando o servidor é reiniciado, é um candidato ideal para colocar na memória volátil que também é liberada quando o servidor é reiniciado.
Testei isso em um ambiente mais baixo e resultou em tempos de consulta mais rápidos, mas aumentou o uso da CPU, porque a CPU está fazendo mais trabalho em vez de aguardar na unidade tempdb lenta.
Alguém mais colocou seu tempdb na RAM em sistemas de alta produção oltp? Existe alguma grande desvantagem? Existem fornecedores para escolher ou evitar especificamente?