Nosso banco de dados de aplicativos de fornecedores é muito intensivo em TempDB.
O servidor é virtual (VMWare) com 40 núcleos e 768GB de RAM, rodando SQL 2012 Enterprise SP3.
Todos os bancos de dados, incluindo o TempDB, estão no SSD Tier 1 na SAN. Temos 10 arquivos de dados tempdb, cada um pré-crescido para 1 GB e eles nunca crescem 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 cumulativo de 250 horas ou 10 dias.
Já ajustamos o código do fornecedor e os SPs nos últimos 2 anos.
Agora, estamos pensando em colocar arquivos tempdb na unidade de RAM, pois temos uma tonelada de memória. Como o tempdb é destruído/recriado quando o servidor é reinicializado, é um candidato ideal para ser colocado na memória volátil, que também é eliminada quando o servidor é reinicializado.
Eu testei isso em um ambiente inferior e resultou em tempos de consulta mais rápidos, mas aumentou o uso da CPU, porque a CPU está trabalhando mais em vez de esperar na unidade tempdb lenta.
Alguém mais colocou seu tempdb na RAM em sistemas de produção de alta oltp? Existe alguma grande desvantagem? Existem fornecedores para escolher ou evitar especificamente?