Pergunta

Estamos dizendo ao nosso cliente para colocar um arquivo de banco de dados SQL Server (MDF), em uma unidade física diferente do arquivo de log de transações (LDF). A empresa de tecnologia (contratada pelo nosso cliente) queria colocar o log de transações em uma unidade mais lenta (por exemplo, mais barata) do que a unidade de banco de dados, porque com os logs de transações, você está apenas escrevendo sequencialmente no arquivo de log.

Eu disse a eles que achava que a unidade (na verdade uma configuração de RAID) precisava estar em uma unidade rápida também, porque cada chamada de mudança de dados para o banco de dados precisa ser salva lá, bem como no próprio banco de dados.

Depois de dizer isso, percebi que não tinha muita certeza disso. A velocidade da unidade de log de transações faz uma diferença significativa no desempenho ... se a unidade com o banco de dados for rápida?

Foi útil?

Solução

A velocidade da unidade de log é o fator mais crítico para um banco de dados intensivo de gravação. Nenhuma atualização pode ocorrer mais rápido que o log pode ser escrito, para que sua unidade deve apoiar seu máximo taxa de atualização experimentada em um pico. E todas as atualizações geram log. Atualizações do arquivo de banco de dados (mdf/ndf) podem proporcionar taxas mais lentas de gravação por causa de dois fatores

  • As atualizações de dados são escritas preguiçosamente e lavadas no ponto de verificação. Isso significa que um pico de atualização pode ser amortizado sobre a taxa de transferência média de acionamento
  • Várias atualizações podem se acumular em uma única página e, portanto, precisarão de uma única gravação

Portanto, você está certo de que a taxa de transferência de log é crítica.

Mas, ao mesmo tempo, as gravações de log têm um padrão específico de gravações sequenciais: o log é sempre anexado no final. Todas as unidades mecânicas têm uma taxa de transferência muito maior, para leituras e gravações, para operações seqüenciais, uma vez que envolvem menos movimento físico das cabeças do disco. O mesmo acontece com o que seus caras de OPS dizem que uma unidade mais lenta pode oferecer na verdade a taxa de transferência suficiente.

Mas tudo isso vem com alguns grandes avisos:

  • A unidade mais lenta (ou combinação de invasão) deve realmente oferecer alta taxa de transferência seqüencial
  • A unidade deve ver o log grava de um e apenas um banco de dados e nada mais. Qualquer outra operação que possa interferir na posição atual da cabeça do disco prejudicará sua taxa de transferência de gravação e resultará em desempenho mais lento do banco de dados
  • O log deve ser apenas gravar e não ler. Lembre -se de que certos componentes precisam ler do log e, portanto, moverão a mecânica do disco para outras posições para que possam ler de volta o log escrito anteriormente:
    • Replicação transacional
    • Espelhamento de banco de dados
    • Log backup

Outras dicas

Em termos simplistas, se você estiver falando sobre um banco de dados OLTP, sua taxa de transferência será determinada pela velocidade das suas gravações no log de transações. Depois que esse teto de desempenho é atingido, todas as outras ações dependentes devem aguardar o log para concluir.

Essa é uma visão muito simplista dos internos do registro de transações, aos quais livros inteiros são dedicados, mas o ponto rudimentar permanece.

Agora, se o sistema de armazenamento com o qual você estiver trabalhando puder fornecer os IOPs necessários para oferecer suporte ao seu log de transações e arquivos de dados do banco de dados, uma unidade/LUN compartilhada forneceria adequadamente suas necessidades.

Para fornecer a você um curso de ação recomendado específico, eu precisaria saber mais sobre a carga de trabalho do banco de dados e o desempenho que você precisa do seu servidor de banco de dados para entregar.

Coloque suas mãos no título SQL Server 2008 Interna Para dar uma olhada completa nos internos do log de transações do SQL Server, é um dos melhores títulos do SQL Server por aí e se pagará em minutos a partir do valor que você ganha com a leitura.

Bem, o registro de transações é a principal estrutura que fornece ácido, pode ser um grande gargalo para o desempenho e, se você fizer backups regularmente, seu espaço necessário tem um limite superior, para que eu o colocasse em uma unidade rápida e segura com apenas espaço suficiente + um pouco de margem.

O log de transações deve estar nas unidades mais rápidas, se puder preencher a gravação no log, ele pode fazer o restante da transação na memória e deixá -lo atingir o disco posteriormente.

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