Existe um benefício de desempenho ao colocar arquivos de log de transações em uma unidade separada?

9

Existem muitas postagens no blog e artigos sobre práticas recomendadas, exaltando as virtudes de colocar o arquivo de dados do SQL Server em um disco rígido e o log de transações em outro. O motivo é que o arquivo do banco de dados estará passando por leituras e gravações aleatórias, enquanto o log de transações terá apenas gravações sequenciais.

Mas e se você tiver centenas de bancos de dados? Existe um benefício real no desempenho ao colocar centenas de arquivos de log de transações em um disco separado? Se vários logs de transações estiverem sendo gravados, acho que as gravações do log de transações seriam tão aleatórias quanto as gravações do banco de dados.

8kb
fonte

Respostas:

7

Corrigir. Em teoria, se você possui 100s de bancos de dados, precisa de 100s de unidades, uma para cada log. Na prática, embora não se importe com esse caso, porque quando você tem 100s de DBs, obviamente não espera um desempenho de TPC de alto nível para cada DB. Você provavelmente terá alguns DBs com alto rendimento e SLAs rigorosos e poderá tê-los em eixos separados, enquanto os muitos SLAs de nível inferior se amontoam em alguns discos compartilhados.

Remus Rusanu
fonte
2

O log de transações é exatamente isso ... um log de todas as transações. Como tal, ele preenche continuamente em uma direção até o ponto de verificação e sobrescrito, ou truncado e sobrescrito. A substituição é sequencial.

Considere seus arquivos de dados. Um registro de cliente pode conter um pedido de 5 anos atrás e um de 10 anos atrás. Se você excluir esses pedidos (digamos, estiver arquivando dados em outro lugar), no tlog atual, você excluirá 1 e excluirá 2 em ordem. No entanto, em seus arquivos de dados, você tocou nos blocos que foram gravados há 5 e 10 anos.

Por isso, com certeza importa :)

Eric Higgins
fonte
2

A colocação do log de transações em um disco separado por si só proporcionará um desempenho melhor do que em conjunto com outros arquivos de dados / log. Se você colocar todos os logs no mesmo disco, não estará executando E / S sequencial, mas sim E / S aleatória entre esses arquivos de log.

StanleyJohns
fonte