DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo da SQL Magazine 28 - Index Tuning Wizard

Artigo publicado na Revista SQL Magazine - Edição 28.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

 

capaSQL28.JPG

 

Clique aqui para ler todos os artigos desta edição

 

Index Tuning Wizard

Valide, drope ou crie novos índices com a ferramenta de tuning da Microsoft

Paulo Ribeiro

Grande parte dos problemas de desempenho se deve à inexistência de índices adequados para as queries. Mas o que vem a ser um “índice adequado”? Um bom índice deve reduzir o volume de I/O necessário para execução da query. Um bom índice deve também “ajudar mais” do que “atrapalhar”, sendo efetivamente utilizado pelas queries.

O objetivo dessa matéria será apresentar ao leitor o Index Tuning Wizard, ferramenta embutida no SQL Server 2000 para análise de queries, cujo propósito é recomendar a criação ou exclusão de índices para otimização de performance.

Um bom índice é...

Conhecem aquele ditado: um é bom, dois é ótimo, mas três pode ser demais? Pois bem, uma tabela sem índices é péssima, mas a abundância de índices pode não ser um bom negócio -  principalmente se os índices não são utilizados.

Índices e estatísticas foram discutidos nas edições 9 e 10 (“Estatísticas de Distribuição de Dados no SQL Server” e “Entendendo e Utilizando Índices na Otimização de Queries”); faremos aqui apenas um exemplo prático.

Exemplo prático de tuning envolvendo a criação de índice

Os índices da tabela Orders, localizada no database Northwind, encontram-se na Listagem 1. Repare no índice em destaque ix_EmployeeId, criado sobre a coluna de EmployeeId.

 

Listagem 1. Indices existentes na tabela Orders.

use NorthWind

go

exec sp_helpindex orders

go

 

-----------------------------------------------------------------------------------------

index_name   index_description                                                    index_keys

--------------         -----------------------------------------------                   --------------

ix_CustomerID                   nonclustered located on PRIMARY                     CustomerID

ix_EmployeeID                    nonclustered located on PRIMARY                                 EmployeeID

ix_OrderDate           nonclustered located on PRIMARY                     OrderDate

PK_Orders               clustered, unique, primary key located on PRIMARY        OrderID

ix_ShippedDate                 nonclustered located on PRIMARY                     ShippedDate

ix_ShippersOrders     nonclustered located on PRIMARY                     ShipVia

ix_ShipPostalCode    nonclustered located on PRIMARY                     ShipPostalCode

 

 O comando SELECT da Listagem 2 está filtrando os clientes cujos pedidos foram atendidos pelo empregado de código 4. Note que o índice ix_EmployeeId não está sendo utilizado, fato que pode ser confirmado pelo processo de scan ( varredura seqüencial) no índice cluster.

 

Listagem 2. SELECT com clustered index scan na tabela Orders.

set showplan_text on

set statistics_io on

go

select employeeId, customerId

from orders

where employeeid=4

go

---------------------------------------------------------------------------------------------------

 

StmtText                                                          "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Paulo Ribeiro
Paulo Ribeiro (psribeiro@hotmail.com) é Microsoft MCDBA e membro da equipe editorial da SQL Magazine. Atua como DBA sênior em SQL Server na Livraria e Papelaria Saraiva S/A.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03