Usando arquivos e grupos de arquivos

O SQL Server mapeia um banco de dados de um conjunto de arquivos do sistema operacional. As informações de log e dados nunca ficam misturadas no mesmo arquivo, e os arquivos individuais são usados apenas por um banco de dados. Os grupos de arquivos são conhecidos como coleções de arquivos e são usados para simplificar o posicionamento de dados e em tarefas administrativas, como operações de backup e restauração. Para obter mais informações, consulte Arquitetura de arquivos e grupos de arquivos.

Estratégia de arquivo e de preenchimento de grupo de arquivos

Os grupos de arquivos usam uma estratégia de preenchimento proporcional em todos os arquivos de cada grupo de arquivos. Como os dados são gravados no grupo de arquivos, o Mecanismo de banco de dados do SQL Server grava uma quantidade proporcional no espaço livre de cada arquivo dentro do grupo de arquivos, em vez de gravar todos os dados no primeiro arquivo até que ele seja preenchido. Em seguida, grava no arquivo seguinte. Por exemplo, se o arquivo f1 tiver 100 MB livres e o arquivo f2 tiver 200 MB livres, uma extensão é alocada do arquivo f1, duas extensões do arquivo f2, e assim por diante. Dessa forma, todos os arquivos são preenchidos quase simultaneamente, e uma distribuição simples é obtida.

Tão logo todos os arquivos de um grupo de arquivos estejam preenchidos, o Mecanismo de Banco de Dados expande automaticamente um arquivo por vez, de maneira seqüencial, permitindo mais dados desde que o banco de dados esteja definido para aumentar de forma automática. Por exemplo, um grupo de arquivos compõe-se de três arquivos, todos definidos para aumentar automaticamente. Quando se extingue o espaço em todos os arquivos do grupo de arquivos, somente o primeiro arquivo é expandido. Quando o primeiro arquivo é preenchido e não é mais possível gravar dados no grupo de arquivos, o segundo arquivo é expandido. Quando o segundo arquivo está cheio e não é mais possível gravar dados no grupo de arquivos, o terceiro arquivo é expandido. Se o terceiro arquivos se tornar cheio e não for mais possível gravar dados no grupo de arquivos, o primeiro arquivo é expandido novamente, e assim por diante.

Aprimorando o desempenho do banco de dados

Usar arquivos e grupos de arquivos aprimora o desempenho do banco de dados porque permite criar um banco de dados em vários discos, vários controladores de discos ou sistemas RAID (Redundant Array of Independent Disks). Por exemplo, se o seu computador tiver quatro discos, crie um banco de dados que consista em três arquivos de dados e um arquivo de log, com um arquivo em cada disco. À medida que os dados são acessados, quatro cabeçotes de leitura/gravação podem acessar os dados em paralelo e simultaneamente. Isso acelera as operações de banco de dados. Para obter informações sobre soluções de hardware, consulte Desempenho do banco de dados.

Adicionalmente, os arquivos e grupos de arquivos ativam o posicionamento de dados porque uma tabela pode ser criada em um grupo de arquivos específico. Isso aprimorará o desempenho porque toda a E/S de uma determinada tabela pode ser dirigida a um disco específico. Por exemplo, uma tabela usada intensamente pode ser posta em um arquivo ou grupo de arquivos localizados em um disco, e as outras tabelas usadas menos intensamente no banco de dados podem ser postas nos outros arquivos do grupo de arquivos localizados em um segundo disco.

Implementando estratégias de backup e restauração

Bancos de dados compostos de vários grupos de arquivos podem ser restaurados em estágios, por um processo conhecido como restauração por etapas. A restauração por etapas funciona com todos os modelos de recuperação, sendo mais flexível com relação aos modelos completos e com modelos com log de operações em massa do que com relação ao modelo simples. O cenário de restauração por etapas inclui todas as três fases da restauração: copiar dados, refazer ou efetuar roll forward e desfazer ou reverter. Para obter mais informações, consulte Executando restauração por etapas.

Quando vários grupos de arquivos são utilizados, os arquivos de banco de dados podem ser submetidos a backup e restaurados individualmente. No modelo de recuperação simples, os backups de arquivo só são permitidos para arquivos somente leitura. O uso de backups de arquivos pode aumentar a velocidade de recuperação, permitindo restaurar somente arquivos danificados, sem restaurar o restante do banco de dados. Por exemplo, se um banco de dados consistir em diversos arquivos situados fisicamente em discos diferentes, e um disco falhar, apenas o arquivo no disco com falha terá que ser restaurado. Para obter mais informações, consulte BACKUP (Transact-SQL).

Regras para criar arquivos e grupos de arquivos

As regras a seguir pertencem aos arquivos e grupos de arquivos:

  • Arquivo ou grupos de arquivos não podem ser usados por mais que um banco de dados. Por exemplo, o arquivo sales.mdf e sales.ndf, que contêm dados e objetos do banco de dados sales não podem ser usados por nenhum outro banco de dados.

  • Um arquivo pode ser um membro apenas de um único grupo de arquivos.

  • Os arquivos de log de transação nunca integram nenhum grupo de arquivos.

Recomendações

A seguir, algumas recomendações gerais para quando se estiver trabalhando com arquivos e grupos de arquivos:

  • A maioria dos bancos de dados funcionará bem com um único arquivo de dados e um único arquivo de log de transação.

  • Quando vários arquivos forem usados, crie um segundo grupo de arquivos para o arquivo adicional e transforme o grupo de arquivos em padrão do grupo de arquivos. Desse modo, o arquivo primário conterá somente tabelas e objetos do sistema.

  • Para maximizar o desempenho, crie arquivos ou grupos de arquivos em tantos discos físicos diferentes e disponíveis quanto possível. Insira objetos que disputem pesadamente por espaço em diferentes grupos de arquivos.

  • Use grupos de arquivos para ativar a colocação de objetos em discos físicos específicos.

  • Insira tabelas diferentes usadas nas mesmas consultas de junção em diferentes grupos de arquivos. Isto aperfeiçoará o desempenho por conta da busca por dados adicionados pela E/S paralela do disco.

  • Insira tabelas excessivamente acessadas e índices não clusterizados que pertençam às tabelas de diferentes grupos de arquivos. Isto aperfeiçoará o desempenho por causa da E/S paralela caso os arquivos estejam localizados em discos físicos diferentes.

  • Não insira o arquivo ou arquivos de log de transação no mesmo disco físico que contém os outros arquivos e grupos de arquivos.