Quanto o desempenho do SQL Server 2005 aumentará com mais RAM?

2

Estou procurando opiniões e recursos sobre quanto desempenho aumentará em um servidor adicionando mais RAM. Quais fatores entram em jogo? Existe um cálculo geral que pode ser realizado?

    
por paulwhit 15.09.2009 / 16:13

4 respostas

10

Isso é totalmente subjetivo ...

  • Você está usando o SQL Server 2005 como um 64 programa de bits?
  • O banco de dados é o único aplicativo no servidor?
  • Você fez o perfil do servidor para ver se há uma crise na memória? ou disco I / O? Ou rede? Processador?

Se você está vendo uma crise no desempenho, você precisa identificar onde está o gargalo e ir a partir daí. Usando o Monitor de Desempenho do Windows pode ajudar. O uso aleatório de hardware no problema pode não ajudar em nada (embora geralmente a memória não atrapalhe).

    
por 15.09.2009 / 16:21
3

Em geral, você obtém o melhor desempenho do banco de dados se o conjunto de dados de trabalho couber inteiramente na RAM. O conjunto de trabalho é o subconjunto de seus dados que é lido regularmente por consultas (as atualizações e inserções sempre atingem o banco de dados, portanto, mais RAM não acelerará necessariamente esses dados). Portanto, primeiro você precisa identificar a quantidade de memória que realmente precisa para armazenar em cache todos os dados relevantes. Então você precisa ver a melhor maneira de fornecer essa RAM ao servidor SQL.

    
por 15.09.2009 / 17:33
2

Até onde sei, não há cálculos que possam prever o aumento no desempenho com base em um determinado aumento na quantidade de memória. A relação entre os dois não é linear, e há sempre outros fatores envolvidos, como observado por outros. Supondo que você não tenha um grande gargalo em outros lugares, adicionar RAM quase sempre ajuda.

Uma outra observação: se você estiver executando em versões de 32 bits do Windows e / ou SQL Server, estará restrito à quantidade de RAM que pode ter entre 2 GB e 4 GB, dependendo da configuração dos dois servidores . Se você atualizar ambos para as versões de 64 bits, poderá utilizar mais de 4 GB de RAM para melhorar o desempenho.

    
por 15.09.2009 / 17:50
1

Como Bart sugeriu, você precisa isolar e identificar os principais gargalos no servidor e resolvê-los para um desempenho ideal. Como você já está no SQL Server 2005, você pode usar as estatísticas de espera no servidor. Aqui está uma consulta das consultas de diagnóstico da Glenn. Aqui está o link. link

- Isolar as principais esperas para a instância do servidor desde a última reinicialização ou estatísticas claras COM as esperas como (Wait_type SELECT, wait_time_ms / 1000. AS wait_time_s,     100. * wait_time_ms / SUM (wait_time_ms) OVER () como pct,     ROW_NUMBER () OVER (ORDER BY wait_time_ms DESC) COMO rn  FROM sys.dm_os_wait_stats  WHERE wait_type NOT IN ('SLEEP_TASK', 'BROKER_TASK_STOP',   'SQLTRACE_BUFFER_FLUSH', 'CLR_AUTO_EVENT', 'CLR_MANUAL_EVENT',   'LAZYWRITER_SLEEP')) - filtrar esperas irrelevantes adicionais SELECT W1.wait_type,   CAST (W1.wait_time_s AS DECIMAL (12, 2)) como wait_time_s,   CAST (W1.pct AS DECIMAL (12, 2)) AS pct,   CAST (SUM (W2.pct) AS DECIMAL (12, 2)) AS running_pct DE esperas como W1 INNER JOIN aguarda como W2 ON W2.rn

No entanto, em geral, o SQL Server é restrito principalmente por memória, E / S e CPU e principalmente nessa ordem. Você precisa observar o valor da expectativa de vida da página usando DMVs do servidor perfmon / sql. O SQL Server prospera se tiver mais memória. Mas note que eu sou contra jogar hardware em um problema quando deveria ser melhor manipular em áreas TSQL. O mais provável é que você precise examinar as consultas que executam a maior parte do IO (elas provavelmente arrastarão o buffer pool), criar índices significativos, descartar os índices não utilizados, trabalhar nos índices ausentes ou otimizar o sql. Otimizando o sql é onde as pessoas falham normalmente devido à falta de habilidades.

    
por 18.09.2009 / 02:18