Pergunta

Em um dos meus aplicativos, tenho uma tabela de banco de dados de 1 GB usada para dados de referência.Ele tem uma grande quantidade de leituras saindo daquela mesa, mas nunca há gravações.Eu queria saber se há alguma maneira de os dados serem carregados na RAM para que não precisem ser acessados ​​​​a partir do disco?

Estou usando o SQL Server 2005

Foi útil?

Solução

Se você tiver RAM suficiente, o SQL fará um excelente trabalho determinando o que carregar na RAM e o que procurar no disco.

Esta pergunta é muito feita e me lembra de pessoas que tentam definir manualmente em qual "núcleo" seu processo será executado - deixe o sistema operacional (ou, neste caso, o banco de dados) fazer o que foi projetado.

Se quiser verificar se o SQL está de fato lendo seus dados de pesquisa fora do cache, você pode iniciar um teste de carga e usar Sysinternals ArquivoMon, Explorador de processos e Monitor de Processo para verificar se a tabela de 1 GB não está sendo lida.Por esse motivo, às vezes colocamos nossos dados de "pesquisa" em um grupo de arquivos separado para que seja muito fácil monitorar quando eles estão sendo acessados ​​no disco.

Espero que isto ajude.

Outras dicas

Você vai querer dar uma olhada no memcached.É o que muitos sites enormes (e bem dimensionados) usavam para lidar com problemas como esse.Se você tiver alguns servidores sobressalentes, poderá configurá-los facilmente para manter a maior parte dos seus dados na memória.

http://en.wikipedia.org/wiki/Memcached

http://www.danga.com/memcached/

http://www.socialtext.net/memcached/

Apenas para esclarecer o problema do sql2005 e superior:

Essa funcionalidade foi introduzida para desempenho no SQL Server versão 6.5.O DBCC Pintable possui efeitos colaterais altamente indesejados.Isso inclui o potencial de danificar o pool de buffer.O DBCC Pintable não é necessário e foi removido para evitar problemas adicionais.A sintaxe para este comando ainda funciona, mas não afeta o servidor.

DBCC PINTABLE fixará explicitamente uma tabela no núcleo se você quiser garantir que ela permaneça em cache.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top