Importância da localização da instalação do Microsoft SQL Server

10

Eu tenho um servidor com disco lento barato e um disco rápido caro.

Quero usar o disco caro para todas as coisas em que é importante que seja rápido, como meus bancos de dados.

Para economizar dinheiro, quero usar o disco lento para qualquer coisa que não faça muita diferença, seja rápida ou lenta, como backups.

Agora, minha pergunta é: devo instalar o Microsoft SQL Server no disco lento ou rápido?

(Para deixar claro, colocarei meus bancos de dados no disco rápido, não importa o que aconteça, portanto, minha pergunta diz respeito apenas ao local da instalação)

Niels Brinch
fonte
3
Por que você consideraria isso, considerando que um SSD de baixa gravação de 120GB é (a) BARATO e (b) super rápido e (c) bom o suficiente para tudo o que os programas OS + usam? Mudei todos os sistemas operacionais para 120gb ssd há 2 anos e o custo realmente não importava - naquele momento. Agora é ainda menos relevante.
TomTom
Deseja confiar em um banco de dados de missão crítica em um disco SSD? Lembre-me de nunca fazer negócios com você ...
Shadur
2
@Shadur que flamebait. Sim, eu o colocarei em um disco configurado para SSD RAID 10, replicado localmente para outros 2 discos e com backup noturno em um local remoto. Bem-vindo à década!
Niels Brinch
@ TomTom, você está certo, é claro, mas estou em uma situação bastante sensível a custos nesse caso, por isso estou me preocupando com esse tipo de hiper otimização. Minha pergunta se tornará cada vez mais irrelevante a cada ano que passa, como é o caso da maioria das perguntas aqui, suponho.
Niels Brinch
@NielsBrinch Cent Smart e Pound Foolish. Seriamente.
TomTom

Respostas:

11

Isso é meio que opinativo, mas eu colocaria os binários do SQL Server no disco lento. É bastante comum colocar os binários no disco do sistema operacional (embora algumas pessoas odeiem isso) ou em um disco mais lento.

Você definitivamente quer se lembrar de colocar os bancos de dados do sistema, especialmente o tempdb, no disco mais rápido. De fato, também é comum colocar o tempdb sozinho.

Isto está de acordo com um par de artigos eu achei que poderia ser útil.

Há também backups de log de transações para pensar, e estou empolgado com isso porque você deseja os LDFs no disco mais rápido e também deseja backups em um disco diferente do local onde os bancos de dados vivem, mas seria melhor se eles estivessem em um disco mais rápido. Você precisará fazer um julgamento, mas eu provavelmente voltaria ao disco mais lento e reclamaria disso. ;)

Katherine Villyard
fonte
Obrigado. Você está dizendo que isso não afeta o desempenho, principalmente se a instalação do servidor sql (binários etc.) está no disco lento ou rápido?
Niels Brinch
1
Não que eu tenha notado. E é uma configuração bastante comum.
Katherine Villyard
6
Katherine está certa, porque os binários em si não estão particularmente vinculados à IO. Em geral, colocar binários em um disco rápido melhorará o tempo de carregamento, mas raramente afeta a velocidade geral da operação, pois o código está sendo executado a partir da memória. A menos que você esteja reiniciando o servidor com frequência, não será prejudicial ter os binários em armazenamento mais lento.
Corey
@ Corey, muito obrigado pela explicação. Era isso que eu estava procurando.
Niels Brinch
6

Gostaria de acompanhar a ótima resposta que Katherine Villyard já deu.

Depende um pouco do uso pretendido do seu banco de dados.
Se você espera muitas operações de gravação, vá em frente e coloque seus arquivos .mdfe .ndfno disco mais rápido.

Se, no entanto, seu banco de dados é geralmente um tanto estático (servindo conteúdo da web, por exemplo). E as consultas não variam muito, é provável que você receba uma grande quantidade de consultas em sua memória ou até armazene em cache no lado do aplicativo. Em que ponto você é melhor fora de usar o disco mais rápido para os seus .ldf, tempdbe backups.

Da mesma forma, se você está esperando um monte de consultas grandes, como para um OLAPbanco de dados, é melhor você guardar o seu .mdf, tempdbsobre o disco mais rápido. E colocar os .ldfdiscos mais lentos, pois muitas vezes isso não faz parte do gargalo.

De qualquer forma, não se preocupe em colocar os binários no disco rápido, geralmente os colocamos em um disco lento (não no sistema, se for possível evitar).
Além disso, não se preocupe em tentar colocar os arquivos .ldfe .mdfno disco rápido, geralmente eles são separados sempre que possível.

Portanto, em resumo, revise sua carga para ver qual será o seu gargalo mais provável.

Reaces
fonte
3

Você tem coisas ao contrário. Eu sei que é contra-intuitivo, mas você deseja os backups (especialmente os backups do log de transações) no disco rápido e os arquivos mdf / ldf (com a notável exceção do tempdb) no disco lento.

Você pode pensar nisso como se o Sql Server mantivesse duas representações dos seus dados. Os arquivos MDF + LDF representam o estado atual do banco de dados, enquanto o backup (incluindo backups de log de transações desde o último backup completo) representa o que você precisa para restaurar o estado atual do banco de dados no caso de uma falha. Você deseja manter essas duas representações separadas uma da outra, para que um evento que destrua uma representação também não danifique a outra representação.

Acontece que o desempenho do Sql Server tende a depender muito da rapidez com que você pode gravar arquivos de log de transações e seus backups com a rapidez com que pode acessar arquivos mdf. Isso significa que você deve considerar fortemente colocar backups na unidade rápida (idealmente, você adicionaria um pequeno SSD ao servidor que pode ser usado para arquivos ldf, para dar velocidade, preservando a separação dos backups). Infelizmente, isso deixa o disco lento para seus arquivos MDF, mas novamente: não importa tanto quanto você pensa.

Vale ressaltar que o acima exposto pressupõe que você tenha RAM suficiente, que siga cargas de trabalho típicas e que planeje usar o modo de recuperação total, em vez de simples. Além disso, o sistema operacional e o programa Sql Server instalado podem ser colocados na unidade lenta, mas é claro que você provavelmente deseja tanto quanto tiver espaço para viver na unidade rápida.

Joel Coel
fonte
Por backups, quero dizer arquivos que não estão em uso, mas simplesmente armazenados. Eu colocaria os arquivos mdf e ldf no disco rápido. É novidade para mim que o mdf pode colocar no disco lento, que foi uma informação interessante e inesperada.
Niels Brinch
1
Você não quer o mdf no mesmo disco que os backups / logs. MDF representa o estado atual do banco de dados. O Backup + LDF representa o que você precisa para recuperar o banco de dados para o estado atual. Você deseja que as duas representações sejam separadas uma da outra, para que um evento que destrua uma também não danifique a outra. E como os logs e backups devem estar no disco rápido (o desempenho depende muito mais da rapidez com que você pode gravar no arquivo ldf do que da rapidez com que pode gravar no arquivo mdf), isso significa que o mdf deve ir para o disco lento.
Joel Coel
Vou editar a maioria dos comentários acima na resposta.
Joel Coel
1
Não sei por que você está dizendo isso .ldfe .mdfprecisa ser separado em caso de desastre ... Geralmente, não é assumido que você usará um deles para recuperação de desastre, é para isso que servem os backups. Se você não tiver a perda de dados mais próxima de 0 possível, obterá backups de log extremamente frequentes, não dependerá do próprio arquivo de log.
Reaces em 7/10
@ Reaces Você está certo. Eu tive um peido cerebral e estava escrevendo arquivos LDF com os dedos enquanto pensava nos backups do TRN na minha cabeça. Os pensamentos gerais se mantêm, mas precisarei revisar significativamente para esclarecer isso (trabalhando nisso agora).
Joel Coel