Você está na página 1de 10

Criação de Banco de

Dados
Criando Índices
Índices - Conceitos
O Índice serve para prover um acesso rápido a linhas da tabela.
Por meio dele é possível unir uma ou mais colunas por onde o
acesso é mais frequente [Oliveira].
Ex: Numa tabela “Pessoas” é comum fazermos buscas por
ordem alfabética de nome. Porém, o nome não é uma boa
chave primária (pela possível repetição de nomes, e por ser
alfanumérico deixa as pesquisas mais lentas), então criamos
um índice para o nome da pessoa, garantindo um acesso mais
rápido aos nomes, mesmo não sendo a chave primária.
Índices - Conceitos
Os valores armazenados são armazenados em um objeto no
banco de dados em ordem, o que permite ao SGBD pesquisar
primeiro no índice, para depois buscar na tabela.

Funcionamento:
É como o índice no final de um livro, os principais assuntos
estão indexados em ordem alfabética. A pessoa localiza o
assunto, verifica o número da página e vai direta a ela, sem
precisar buscar sequencialmente nas páginas. Isso também
ocorre com o índice de uma tabela.
Quando criar um Índice
A criação de um índice deve ser pensada, para
que se possa obter vantagens dela, e que o índice
não venha a acarretar problemas.
Deve-se evitar a criação de índices sem critério
para cada um dos campos de uma tabela.
O índice implica custo ao SGBD, o mesmo deve
mantê-lo atualizado a cada nova, inclusão,
exclusão ou alteração. O índice também ocupará
espaço no BD, pois são criados objetos para
manter essas informações.
Quando criar um Índice

Poucos
Índices –
Pode Muitos
prejudicar a Índices –
aplicação Pode
prejudicar o
desempenho
do BD
Dicas para decidir quando
criar índices:
1. Chaves Primárias: Criar quando o seu SGBD não o fizer
automaticamente;
2. Chaves Estrangeiras: Criar;
3. Colunas utilizadas frequentemente na cláusula where
do comando select (muito pesquisadas): Criar.
4. Colunas com muito conteúdo NULO: Não criar;
5. Colunas com muitos valores iguais: Não criar;
6. Tabelas muito pequenas: Não criar.
7. Sempre que uma consulta ao banco de dados estiver
muito lenta, verificar a possibilidade de criar um índice
para facilitar a busca.
Criando índices:
Comando Create Index:
Sintaxe:
CREATE [UNIQUE] INDEX nome
ON tabela (coluna, coluna, ...) [ASC | DESC]

Onde:
UNIQUE: Identifica que o índice não permite repetição de conteúdo na
lista de colunas incluídas
nome – Nome do objeto, índice
tabela – nome da tabela
coluna – lista de colunas que compõem a chave de indexação
ASC – A ordem de indexação é ascendente (opção padrão)
DESC – A ordem de indexação é descendente (opção padrão)
Criando índices:
Exemplos:

CREATE INDEX xAutor


ON autor (NMAutor)

CREATE Unique INDEX xCliente


ON Cliente (idCliente DESC)

CREATE INDEX xCidade


ON Cidade (SGEstado, IdCidade)
Excluindo índices:

Exemplos:

DROP INDEX nome

Ex:
DROP INDEX xCidade
Atividade:

1. Criação dos índices referentes às chaves


estrangeiras, conforme código disponibilizado.
2. Criação do índices referentes às chaves
primárias
3. Criar
índices para Nome_Autor (Tabela Autor) e
Nome_Gravadora (Tabela Gravadora)
4. Criar Índices para as chaves primárias e chaves
estrangeiras do banco “Site_Questões”.

Você também pode gostar