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.