SQL Server 2008 (parte 7) – Filtered Indexes

20/03/2009 23:52

Dando continuidade a série sobre as novidades do SQL Server 2008 veremos hoje o que são Filtered Indexes.


FILTERED INDEXES

A idéia é simples: índices criados com critério de filtro, ou seja, com uma cláusula WHERE, que usados corretamente podem conferir um ganho de performance interessante. Usar corretamente significa planejar a criação de um índice levando em consideração o tipo de consulta que será realizado, frequência de utilização, como os novos registros serão inseridos, e por aí vai.

Vamos ver como podemos criar filtered indexes criando primeiramente a seguinte tabela:

CREATE TABLE [dbo].[Colaborador]
(
   [ColaboradorId] [int] IDENTITY(1,1) NOT NULL,
   [Nome] [varchar](50) NOT NULL,
   [Email] [varchar](50) NULL,
   [Bonus] [int] NOT NULL,
   [TipoColaborador] [int] NULL,
   CONSTRAINT [PK_Colaborador] PRIMARY KEY CLUSTERED 
   (
      [ColaboradorId] ASC
   )
   WITH 
   (
      PAD_INDEX = OFF, 
      STATISTICS_NORECOMPUTE = OFF, 
      IGNORE_DUP_KEY = OFF, 
      ALLOW_ROW_LOCKS = ON, 
      ALLOW_PAGE_LOCKS = ON
   ) ON [PRIMARY]
) ON [PRIMARY]
GO

Criaremos agora um índice com filtro, da seguinte forma:

CREATE NONCLUSTERED INDEX TipoColabIndex 
ON dbo.Colaborador(TipoColaborador)
WHERE TipoColaborador = 1;
GO

O código acima criará um índice para a tabela Colaborador levando em consideração um filtro pela coluna TipoColaborador com o valor igual a 1. Desta forma, o optimizer do SQL Server poderá usar o índice quando necessário. Até o próximo post.

SQL Server



Comentários (3) -

23/03/2009 08:26:17 #

Ricardo

Bom dia.
O sistema de avaliação de pontos está bugado no IE8 Final. Para mim só ficou disponível 1 ou 2 estrelas de avaliação no ie8 enquanto que no firefox 3 funcionou normalmente.
[]s

Ricardo | Reply

23/03/2009 08:40:48 #

ldaniel

Bom dia, Ricardo, valeu pela observação. Assim que tiver corrigido coloco uma observação aqui. Abraços.

ldaniel | Reply

12/04/2009 15:02:13 #

ldaniel

Ricardo, finalmente tive tempo para olhar o bug que você apontou. Fiz um post comentando a solução:

www.leandrodaniel.com/.../...s-do-IE8-em-acao.aspx

Obrigado e abraços!

ldaniel | Reply

Comentar

biuquote
  • Comentário
  • Pré-visualização
Loading