Eu tenho uma VM do Windows Server, com uma combinação de armazenamento HDD e SSD, a capacidade de armazenamento SSD é limitada a 50 GB, mas a capacidade de armazenamento HDD é alta.
Qual é a melhor maneira de compartilhar esses armazenamentos para executar o MSSQL no estado mais estável e com o melhor desempenho possível?
Ele precisa instalar o mecanismo do servidor SQL na unidade SSD?
50 GB não é muito espaço, mas se você tiver um banco de dados pequeno, poderá configurar todo o banco de dados para viver apenas no SSD. Eu não poderia dizer com certeza sem saber o tamanho do seu banco de dados e a taxa de crescimento projetada.
Supondo que você precise usar o HDD para manter seu banco de dados de usuários, eu avaliaria se 50 GB são grandes o suficiente para o
tempdb
banco de dados.tempdb
é um banco de dados do sistema em que certas operações ocorrem durante o processamento de consultas, portanto, geralmente é recomendável provisioná-lo em seu próprio disco rápido. Além disso, quando sua consulta é executada, se os dados forem transferidos para o disco devido a uma estimativa incorreta de cardinalidade ou de outra forma,tempdb
é onde ocorre esse vazamento para o disco. Ter esse vazamento ocorrendo em um SSD em oposição a um HDD fará uma diferença significativa no desempenho.Geralmente você deve provisionar seus
tempdb
9 arquivos de tamanho igual (8 arquivos de dados e 1 arquivo de log) para maximizar seu desempenho também.De maneira semelhante, você também deve pré-aumentar os dados e os arquivos de log de seus bancos de dados de usuários, especialmente com eles no HDD. As operações de crescimento do banco de dados podem custar caro ao desempenho, portanto, ao aumentar completamente os arquivos de forma pró-ativa uma vez, você não precisa se preocupar em incorrer nesse custo várias vezes mais tarde, à medida que a quantidade de dados aumenta.
O único outro conselho que eu recomendo é se você tiver o luxo de usar dois HDDs físicos diferentes para seu banco de dados, então você deve colocar o arquivo de dados do banco de dados em um HDD e o arquivo de log no outro HDD, pois maximizar a E/S seja útil.
Geralmente é recomendado (mais ainda por motivos de gerenciamento) instalar o SQL Server Engine em sua própria unidade separada de qualquer banco de dados. Portanto, com base nas minhas recomendações acima, além de 1x SSD e 2x HDD, você precisaria de um 3º HDD para seguir este conselho.
Se isso não for possível, suponho que você deva instalá-lo no SSD para que seja pelo menos isolado dos arquivos do banco de dados do usuário e, como o SSD terá o desempenho de disco mais alto, não deve ser um problema de suporte ao mecanismo arquivos e
tempdb
.Eu trabalhei com instâncias do SQL Server que misturaram o caminho de instalação do mecanismo e seus arquivos de banco de dados do usuário e nunca tive problemas, mas já faz muito tempo desde que eu trabalhei com uma instância dependente de HDDs também, então mantendo-a o SSD provavelmente será a melhor escolha se você não tiver um HDD dedicado adicional que possa usar.
Por fim, certifique-se de seguir as práticas recomendadas de configuração do SQL Server, que também o ajudarão a maximizar o desempenho. (Isso é um pouco datado de um recurso, mas ainda é muito válido.) Você pode encontrar informações mais atualizadas também em DBA Training Plan 21: Building a New SQL Server .