A regra básica é separar arquivos em volumes diferentes para evitar contenção, no entanto, a quantidade de ganho de desempenho que você obtém varia consideravelmente de acordo com o subsistema de E / S e a carga de trabalho. Por exemplo, múltiplos arquivos em um único fuso físico vão sugar até onde vai o desempenho, mas o mesmo arranjo com o volume que está em um SAN LUN com várias centenas de drives de arrays RAID 10 pode ser ótimo. Os contadores de tamanho de fila de disco são seus amigos como a maneira mais simples de saber se você tem um afunilamento de E / S.
Você está olhando para os padrões de E / S nos bancos de dados - somente leitura, leitura-principalmente, leitura-gravação, gravação-principalmente, somente gravação - e baseando as coisas nisso. Você também precisa escolher o nível de RAID correto e certificar-se de que as compensações de partição de disco, o tamanho da faixa RAID e o tamanho da unidade de alocação NTFS estejam definidos corretamente. Algumas pessoas gostam de separar os índices não clusterizados em um grupo de arquivos separado, mas os ganhos de desempenho aqui variam exatamente como expliquei acima.
Além do desempenho, você deve considerar a capacidade de gerenciamento e a capacidade de recuperação. Ter um único arquivo de dados monolítico para um banco de dados de 100 GB significa que sua unidade de restauração é esse arquivo. A divisão em 4 grupos de arquivos de 25 GB significa que você pode usar a disponibilidade parcial do banco de dados e a restauração parcial para restaurar apenas um único grupo de arquivos no caso de ser danificado. Ao particionar tabelas e índices em vários grupos de arquivos, você também pode limitar quais partes do banco de dados são afetadas pelas operações de manutenção (por exemplo, remoção de fragmentação de índice).
O Tempdb é um caso especial, e eu vou apontar para você em um post meu que explica tudo sobre o porquê e como dividir o tempdb - há muitos equívocos por aí.
Sem fornecer uma recomendação de "generalização generalizada" aqui, vou mostrar um monte de white papers e postagens de blog para você ler:
- Whitepaper: Projeto de armazenamento de banco de dados físico
- Whitepaper: Práticas recomendadas de E / S de pré-implantação
- Whitepaper: Tabelas e índices particionados no SQL Server 2005
-
White paper: Disponibilidade parcial do banco de dados
-
Postagem no blog: Equívocos em torno do TF 1118 ( layout tempdb)
- Postagem no blog: Seus deslocamentos de partição de disco, tamanhos de faixa RAID e unidades de alocação NTFS estão definidos corretamente? (com link para o white paper da partição de disco)
Espero que isso ajude você!