Agora temos um novo servidor para nosso banco de dados e, entre outras coisas, temos 128 GB de RAM disponíveis (anteriormente eu tinha 16 GB). Sei que o SQL Server é muito bom em gerenciar seus recursos, mas gostaria de saber se há alguma configuração ou estratégia especial que devo empregar nas configurações do servidor/db ou no código de processamento (processos/índices armazenados, etc.) melhor vantagem do carneiro disponível.
O banco de dados tem cerca de 70 GB e é um banco de dados não transacional (é um data warehouse). Então, basicamente WRITE grande seguido de READ massivo é o fluxo normal das coisas.
Mesmo que você tenha memória de sobra no momento (banco de dados de 70 GB versus servidor de 128 GB), eu ainda configuraria
maximum server memory
conforme as orientações mais recentes .Isso equivale a 110 GB em um servidor de 128 GB. O raciocínio é que o data warehouse provavelmente continuará a crescer e poderá, eventualmente, pegar mais do que você deseja, então coloque o limite correto agora. Caso contrário, será esquecido.
Quando o volume de dados ultrapassar o limite de 110 GB, preste mais atenção à memória livre do servidor. Se você tiver consistentemente GB adicionais de sobra, considere aumentar o limite em alguns GB.
Fora isso, suas únicas outras opções de ajuste fino são com sinalizadores de rastreamento, que devem ser tratados com o cuidado que merecem. Teste, teste e teste mais um pouco.
Os três candidatos que posso pensar que fariam sentido são:
Como foi mencionado em uma resposta anteriormente, Thomas Kejser referiu-se ao TF834 como o switch apenas "ir mais rápido" dos SQL Servers. O TF2301 permite otimizações que são benéficas para consultas do tipo DW. TF4199 requer a leitura do documento vinculado , então faça.