Otimizando performance com Filegroups

Neste artigo, Paulo Ribeiro explica o que são Filegroups e como otimizá-los para o melhor ganho de performance.

Filegroups são estruturas lógicas - ou se preferir unidades de gerenciamento - que dão suporte aos arquivos de dados (=estruturas físicas) de um database. Todo database possui pelo menos um filegroup – o filegroup primário, gerado automaticamente no momento da criação do database (ver Figura 1)

Figura 1. Figura 2. Criando um filegroup secundário

Pode-se juntar vários arquivos físicos num mesmo filegroup, ou criar vários filegroups, mas qual a recomendação? A resposta é: depende do que você pretende exatamente :

Como criar um filegroup secundário para armazenamento de índices

Para criar outro filegroup, basta acessar a tela de propriedades do database (ver Figura 1) e adicionar outro filegroup (ver Figura 2).

Figura 2. Criando um filegroup secundário

Uma vez adicionado, basta criar tabelas no filegroup PRIMARY e índices no filegroup FG_INDICE. Para especificar o filegroup durante a criação de objetos e índices, utilize a cláusula ON ao final dos comandos CREATE TABLE, CREATE INDEX e ALTER TABLE ... ADD ... PRIMARY-KEY (ver Listagem 1)

Listagem 1. Especificando o filegroup durante a criação de objetos

create table pedido

(

id_pedido int not null

,dt_emissao smalldatetime not null

,id_emitente int not null

)

ON 'PRIMARY'

go

alter table pedido add constraint pk_pedido primary key clustered (id_pedido) on 'PRIMARY'

go

create nonclustered index ix_pedido on pedido (dt_emissao) on 'FG_Indice'

go

Observações:

Conclusão:

Para obter performance precisamos estar sempre atentos aos detalhes. Se você não possui um sistema de RAID e quer performance, armazene índices não cluster numa unidade de disco e filegroup específicos - o resultado vale a pena.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados