Estivemos em um servidor dedicado (quad-core único, 6 GB de RAM) e estamos migrando para um novo servidor dedicado (2x hex-core, 32 GB de RAM). Ambos são o Windows Server 2008, o SQL Server 2008. O desempenho no novo servidor é um pouco pior que o antigo e mais lento.
Nos testes, nosso aplicativo ASP.NET fica 10 a 20% mais lento. A execução de consultas caras individuais com STATISTICS IO e STATISTICS TIME mostra um tempo decorrido 10 a 20% maior no novo servidor. O SQL Query Profile mostra maior uso da CPU em consultas caras.
O Gerenciador de tarefas no novo servidor mostra que o sqlserver.exe está consumindo 22 GB de RAM, mas os valores da CPU sempre permanecem muito baixos.
Atualizei todas as estatísticas, índices reconstruídos ou reorganizados, etc. Os planos de execução devem ser armazenados no novo servidor neste momento, dada a quantidade de testes que fiz. Se houver algum índice ausente (acho que não), eles afetarão igualmente os servidores antigos e novos. Novo possui um backup restaurado dos mesmos dados no antigo.
Eu esperava que o desempenho no novo servidor fosse melhor, mas mais preocupante é a carga. Se o servidor antigo tiver um desempenho melhor, mesmo sob carga, o que acontecerá quando esse novo servidor, um pouco pior, tiver que suportar essa carga?
O que mais eu poderia estar perdendo aqui?
EDIT: MAXDOP definido como 6.
O servidor antigo possui SO, bancos de dados e tempdb nas mesmas unidades físicas (RAID 10). Total de 4 15k 3 Gb / s SAS de 3,5 polegadas. O novo servidor possui três conjuntos de unidades: SO no RAID 1, banco de dados no RAID 10, tempdb no RAID 5. Total de 9 SAS de 15K 6 Gb / s de 2,5 polegadas.
O servidor antigo possui 1 x Intel Xeon E5620 de 2,40 GHz e quatro núcleos 8 threads (w H / T). O novo servidor possui 2 x Intel Xeon E5-2640 de 2,5 GHz e seis threads de 12 núcleos (w / T).
EDIT 2: Aqui está a análise final:
O plano de energia estava em desempenho equilibrado, não alto. Mudou isso.
O Tempdb estava em um RAID 5, não no RAID 10. Adicionado outro HD para criar duas configurações RAID 10 fisicamente distintas, uma para tempdb e outra para todo o resto.
Arquivos relacionados ao SQL excluídos (mdf, ldf, ndf, bak) da verificação de vírus.
Reconstruiu todos os índices após a mudança para o novo servidor. Eles estavam muito fragmentados - possivelmente como resultado de backup, cópia, restauração?
E percebi que o salto do processador não era tão grande. As consultas não serão executadas muito mais rapidamente, mas com mais processadores, mais núcleos, mais RAM, seremos mais escaláveis.