MS SQL 2008 tudo na RAM?

6

Alguém com experiência em usar o SQL 2008, mas tudo na RAM? Tentando tornar certas coisas mais rápidas, e pode buscar isso, obrigado

    
por Tim 18.03.2011 / 21:49

3 respostas

10

Depende do que você quer dizer com "tudo na RAM".

Se você deseja executar seu banco de dados a partir de uma unidade de RAM, é improvável que isso seja possível (a menos que você tenha algum tipo de placa de RAM que se pareça com o SO como um disco normal, ou seja, Interface PATA) como o SQL Server recusará. Ele pressupõe que todos os dados gravados sejam importantes o suficiente para mantê-los, e não se arriscarão a escrevê-los em um meio de armazenamento volátil. Você pode enganá-lo executando-o em uma VM e executando essa VM a partir de uma unidade RAM, mas eu não recomendaria tentar isso pela mesma razão (você perderá todos os dados se ocorrer uma situação de perda de energia ou reinicialização) e devido ao fato de haver uma coleção de outros hits de desempenho da solução de virtualização para se preocupar.

Se o seu problema for atividade de leitura lenta (ou seja, muitas operações que resultam na leitura do disco, basta aumentar a quantidade de RAM na máquina para ser maior que o conjunto de trabalho normal ou melhor ainda que o banco de dados inteiro. Desta forma, a menos que você tenha uma edição do SQL Server que imponha limites artificiais de RAM (o IIRC Express Edition não usará mais do que 1Gb), ele usará a abundância de memória para manter tudo o que lê em cache na RAM, onde pode ser lido rapidamente a seguir Se você desejar pré-carregar os dados na memória RAM a qualquer momento depois que ela for limpa (ou seja, após uma reinicialização devido à instalação das atualizações), você poderá escrever um script que force todas as páginas de índice e dados a serem verificadas. leia na memória.

Se o problema se deve a muitas operações de gravação, otimizar o layout do disco pode ajudar. Sem saber mais sobre o seu banco de dados, não podemos dar sugestões específicas, mas as regras padrão (como tentar manter seus arquivos de dados, logs de transações e tempdb em unidades físicas separadas) podem ajudar.

    
por 18.03.2011 / 22:28
8

Por padrão, o SQL Server usará toda a RAM disponível no servidor. A melhor prática é configurar o SQL Server e ter 2-4 Gigs a menos de RAM disponível do que o servidor realmente tem (dependendo do que mais estiver instalado, quanto SQL CLR você está usando, etc). O SQL Server utilizará a memória no servidor como o cache de buffer, para que os dados precisem ser lidos do disco com a menor freqüência possível. Quanto mais RAM o SQL Server tiver disponível, mais dados o SQL Server pode carregar na memória. Em um trabalho perfeito, o SQL Server lerá quase nunca do disco (exceto na inicialização, já que os dados precisam ser lidos do disco em algum momento), de modo que o único disco IO necessário seja o IO de gravação.

    
por 18.03.2011 / 22:05
5

A execução do SQL Server em um disco RAM é como configurar o arquivo de paginação de uma máquina para estar na RAM: isso quebrará as expectativas do sistema.

O SQL Server é na verdade muito parecido com um sistema operacional, possui sua própria versão de processos, threads, possui seu próprio gerenciador de memória e outras coisas. Então, o que aconteceria se rodássemos o SQL Server em um disco RAM?

  1. Perdemos a consistência do banco de dados. Se o servidor falhasse, perderíamos dados . O SQL Server em sua configuração padrão não perderá dados confirmados.
  2. Acabaremos usando a memória de forma ineficiente, porque o SQL Server usará seu buffer pool e vários caches para dados que já estão na RAM. No pior cenário, você limitará o SQL Server a menos de 50% da memória do sistema. A maioria acabaria sendo usada para armazenar o banco de dados e / ou arquivos de log, e o SQL Server ainda tentaria colocar as coisas em seu buffer pool interno e otimizado e não teria memória suficiente para armazenar em buffer as coisas.

O primeiro é o mais importante. O SQL Server no disco RAM não terá mais consistência transacional no caso de uma falha. Nada mais importa para você, mas posso afirmar com certeza que não há benefícios técnicos para executar o banco de dados do SQL Server ou arquivos de log em um disco RAM que podem compensar os riscos.

    
por 18.03.2011 / 22:05