amily: Arial">
Clique aqui para ler todos os artigos desta edição
Utilizando filegroups para ganho de performance e gerenciamento de espaço
Paulo Ribeiro
Filegroups são estruturas lógicas que sustentam os arquivos de dados em um database. Um database padrão possui um arquivo de dados e um arquivo de log; o arquivo de dados está associado a um filegroup chamado PRIMARY. Pode-se criar outros arquivos de dados assim como outros filegroups, mas porque, como e quando criar outros filegroups?
Nessa matéria aprenderemos a utilizar o recurso dos filegroups na administração do SQL Server 2000. Começaremos estudando a estrutura de um database para entender exatamente onde se encaixam os filegroups; depois serão apresentadas algumas situações práticas que se beneficiam da utilização de filegroups.
Arquitetura de um database
Apesar do nome singular, um database é uma estrutura formada por pelo menos dois arquivos: um para armazenamento de dados (Master Data File, extensão .MDF) e outro reservado para o log de transações (Log Data File, extensão .LDF) (ver Figura 1).

Figura 1. Estrutura típica de um database.
Além dos arquivos .MDF e .LDF, é possível criar outros arquivos para armazenamento de dados. Esses arquivos secundários possuem extensão .NDF, de SecoNdary Data Files e podem ser criados no mesmo filegroup do arquivo .MDF (PRIMARY) ou em outro filegroup. A decisão de utilizar o mesmo filegroup ou criar um novo depende da finalidade do arquivo secundário. A seguir estão listadas algumas situações cuja resolução baseia-se na implementação de filegroups:
· ivo de dados principal atingiu um tamanho que extrapola a capacidade da unidade de fita DLT utilizada no backup. Esse problema pode ser resolvido com a realocação de tabelas em outro filegroup, distribuindo o backup final em partes menores que não ultrapassem a capacidade da fita. Nesse caso, deve-se criar outro filegroup para armazenar o arquivo secundário.
· Você precisa criar um database com tamanho inicial de 25Gb, mas não possui esse espaço em uma única unidade de disco. A distribuição é a seguinte: 20Gb na unidade C e 15Gb na unidade D. Qual a solução? Crie um Master Data File com 15Gb em C e um Secondary Data File com 10Gb em D. Os dois arquivos constituirão uma unidade única de gerenciamento de espaço. O arquivo secundário criado na unidade D será visto pelo SQL Server 2000 como uma extensão natural do arquivo primário. Nesses casos, o arquivo secundário deverá ser criado no mesmo filegroup do arquivo que se deseja expandir (PRIMARY).
· Você pode melhorar a performance de um database criando índices e tabelas em filegroups distintos, localizados em unidades e controladoras específicos. Se as páginas de dados das tabelas forem armazenadas em uma unidade diferente daquela utilizada para os índices (por exemplo C e D), pesquisas que utilizam índices serão beneficiadas por leituras executadas em paralelo. Nesse caso deve-se criar outro filegroup para armazenar o arquivo secundário.
A Figura 2 é um retrato de um database que utiliza um filegroup secundário para armazenamento de índices.

Figura 2. Database que utiliza arquivo secundário (.NDF) para armazenamento de índices.
Criando filegroups
Ao criar um database estaremos originando a unidade primária de gerenciamento – primary data file ou filegroup primário. Em um primeiro momento, o filegroup primário será formado pelo arquivo .MDF, mas como vimos anteriormente, podemos criar outros arquivos e filegroups. A criação de filegroups será ilustrada com a criação do database db_Teste, nossa próxima tarefa.
Criando um database no Enterprise Manager
Abra o Enterprise Manager, selecione o servidor, clique em databases e, com o botão direito do mouse acionado, escolha New Database (ver Figura 3).

Figura 3. Selecionando new database no Enterprise Manager.
Na guia General digite db_Teste para o nome do database. Mantenha a opção Collation Name em Server Default (ver Figura 4).

Figura 4. Definindo o nome do database.
...