NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 04 : 16
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 064 - Capítulo 04 - CRIANDO ÍNDICES USANDO COMANDOS T-SQL

Agora aprenderemos uma série de comandos para trabalhar com índices. Além dos comandos para a criação de índices aprenderemos alguns Stored Procedures internos do SQL Server 2005, para a verificação e manutenção de índices.

Para criar índices utilizamos o comando CREATE INDEX. A seguir temos a sintaxe para o comando CREATE INDEX, conforme descrito no Books OnLine:

CREATE [ UNIQUE ] [ CLUSTERED |  NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC |  DESC ] [ ,...n ] )
[WITH < index_option > [ ,...n]  ]
[ ON filegroup ]
< index_option > :: =
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}

Mais uma vez vamos simplificar a sintaxe para este comando. No formato simplificado teríamos os seguinte:

CREATE [  UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
ON { table | view }
( column [  ASC | DESC ] [ ,...n ] )

O banco de dados NorthWind era um banco de dados fornecido como banco de dados de Exemplo, com o SQL Server 2000. O Northwind não é mais instalado com o SQL Server 2005. Mas é possível importar o Northwind de uma instância do SQL Server 2000, para uma com o SQL Server 2005. Foi exatamente o que eu fiz, para ter o banco de dados Northwind disponível no SQL Server 2005, banco este que será utilizado em vários exemplos deste livro. Para todos os detalhes sobre como Importar o banco de dados Northwind, de uma instância do SQL Server 2000 para uma instância do SQL Server 2005, consulte o Anexo, no final deste livro.

Vamos a um exemplo prático. Para criar o seguinte índice:

  • Tabela Customers do Banco de Dados Northwind
  • Nome: CityIndex
  • Colunas: City
  • Permitir valores duplicados.

utilizaríamos o seguinte comando:

CREATE INDEX CityIndex ON Customers (City)

Vamos a um exemplo um pouco mais elaborado. Qual seria o comando para criar o seguinte índice?

  • Tabela Customers do Banco de Dados Northwind
  • Nome: PK_Customers
  • Colunas: CustomerID
  • Não permitir valores duplicados.

Neste caso, utilizaríamos o seguinte comando:

CREATE UNIQUE CLUSTERED
INDEX PK_Customers ON Customers (CustomerID)
WITH DROP_EXISTING

Ao utilizarmos a opção WITH DROP_EXISTING estamos orientando o SQL Server a excluir o índice caso ele já exista, e a recriá-lo novamente. Se não utilizarmos esta opção e o índice já existir, será emitida a seguinte mensagem de erro:

Msg 1913, Level 16, State 1,  Line 1
The operation failed because an index or statistics with name 'PK_Customers' already exists on table 'dbo.Customers'.

Vamos a mais um exemplo. Agora vamos criar um índice composto com as seguintes características:

  • Tabela Customers do Banco de Dados Northwind
  • Nome: EnderecoIndex
  • Colunas: Address, City e Region
  • Não permitir valores duplicados
  • Ignorar valores duplicados.

Neste caso utilizaríamos o seguinte comando:

CREATE UNIQUE INDEX EnderecoIndex
ON Customers (Address, City, Region)
WITH IGNORE_DUP_KEY

Neste caso utilizamos a opção UNIQUE para criar um índice único e a opção WITH IGNORE_DUP_KEY para ignorar valores duplicados já existentes.

Algumas considerações para a criação de índices compostos por mais do que um campo:

1. Podemos criar um índice composto por, no máximo, 16 colunas. Além disso a soma do tamanho das 16 colunas não pode ultrapassar 900 bytes.
2. Todas as colunas de um índice composto devem pertencer a mesma tabela. Como no SQL Server 2005 podemos criar índices em Views (consultas) e uma View pode retornar dados de várias colunas, ao criarmos um índice composto em uma View, as colunas que formam o índice composto devem pertencer a mesma tabela.
3. Em termos de desempenho, devemos definir a coluna que possui valores mais diferenciados em primeiro lugar. Por exemplo, no índice EnderecoIndex, do qual fazem parte as colunas: Address, City e Region, a coluna que apresenta a maior variação, com certeza é a coluna Address (existem muitos endereços em uma cidade), depois a coluna City (existem muitas cidades em uma região) e por último a coluna Region. Ao definirmos o índice devemos passar as colunas nesta mesma ordem, pois isso melhora o desempenho das consultas.
4. Desta maneira podemos concluir que a ordem das colunas importa no desempenho, além disso os dois comandos a seguir, definem índices diferentes. Observe que a única diferença entre os dois é a ordem das colunas:

CREATE UNIQUE INDEX  EnderecoIndex
ON Customers (Address, City, Region)
WITH IGNORE_DUP_KEY

e

CREATE UNIQUE INDEX  EnderecoIndex
ON Customers (City, Address, Region)
WITH IGNORE_DUP_KEY

5. Ao construirmos uma consulta, a cláusula WHERE deve fazer referência a todas as colunas do índice composto, caso contrário o índice não será utilizado.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI