O SQL Server irá manter a RAM alocada, então, como ele não parece estar acima de 6-7 GB, eu alocaria 8GB para SQL e manteria 2-4 GB extra para o SO nesse caso (SQL sempre faz algumas tarefas fora da memória que aloca para sqlserver.exe
.
Seria uma boa idéia colocar esse valor (8 GB) nas configurações mínimas da memória para sua instância do sql server. Dessa forma, quando o SQL precisar da memória, não perderá tempo alocando-a primeiro porque ela "toma" os 8 GB ao iniciar.
Ao brincar com a RAM, você sempre pode verificar a expectativa de vida da página. Isto irá dizer-lhe quanto tempo algo permanece na RAM. Este é um valor em segundos, desde que continue subindo, você é de ouro.
SELECT object_name, counter_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Buffer Manager%'
AND [counter_name] = 'Page life expectancy'
Contanto que fique acima de 300, você está bem. Valores mais baixos indicariam alguma pressão na memória. Isso pode ocorrer depois de fazer grandes classificações, atualizar / reconstruir índices, ... Não se preocupe se esse valor for baixo depois de reiniciar a instância, nunca poderá ser maior que o tempo em que o SQL está sendo executado.
Um segundo contador interessante é a Taxa de Acertos do Cache do Buffer, isto lhe dirá quantas requisições anteriores (últimos segundos) foram buscadas da memória.
SELECT CAST(A.cntr_value1 AS NUMERIC) /
CAST(B.cntr_value2 AS NUMERIC)* 100 AS Buffer_Cache_Hit_Ratio_Percentage, A.cntr_value1 As Cache_Hits, B.cntr_value2 AS Cache_Lookups
FROM ( SELECT cntr_value AS cntr_value1
FROM sys.dm_os_performance_counters
WHERE object_name = 'MSSQL$SQL01:Buffer Manager' AND counter_name = 'Buffer cache hit ratio'
) AS A,
(SELECT cntr_value AS cntr_value2
FROM sys.dm_os_performance_counters
WHERE object_name = 'MSSQL$SQL01:Buffer Manager' AND counter_name = 'Buffer cache hit ratio base'
) AS B;
Neste exemplo, minha instância do SQL é uma instância nomeada SQL01
, portanto, altere-a para o nome da instância ou altere MSSQL$SQL01:Buffer Manager
para MSSQLServer:Buffer Manager
se você tiver uma instância padrão.
Quanto maior, melhor. Em uma situação ideal, você teria 100% aqui, isso significa que todo o DB está na memória.