T-SQL - índices
Indexessão tabelas de pesquisa especiais que o mecanismo de pesquisa de banco de dados pode usar para acelerar a recuperação de dados. Simplificando, umindexé um ponteiro para dados em uma tabela. Um índice em um banco de dados é muito semelhante a um índice no final de um livro.
Por exemplo, se você quiser fazer referência a todas as páginas de um livro que discute um determinado tópico, consulte primeiro o índice, que lista todos os tópicos em ordem alfabética e, em seguida, é referido a um ou mais números de página específicos.
Um índice ajuda a acelerar as consultas SELECT e cláusulas WHERE, mas diminui a entrada de dados, com instruções UPDATE e INSERT. Os índices podem ser criados ou eliminados sem efeito nos dados.
A criação de um índice envolve a instrução CREATE INDEX, que permite nomear o índice, especificar a tabela e qual coluna ou colunas indexar e indicar se o índice está em ordem crescente ou decrescente.
Os índices também podem ser exclusivos, semelhantes à restrição UNIQUE, no sentido de que o índice evita entradas duplicadas na coluna ou combinação de colunas nas quais há um índice.
Comando CREATE INDEX
A seguir está a sintaxe básica de CREATE INDEX.
Sintaxe
CREATE INDEX index_name ON table_name
Índices de coluna única
Um índice de coluna única é aquele criado com base em apenas uma coluna da tabela. A seguir está a sintaxe básica.
Sintaxe
CREATE INDEX index_name
ON table_name (column_name)
Exemplo
CREATE INDEX singlecolumnindex
ON customers (ID)
Índices Únicos
Índices exclusivos são usados não apenas para desempenho, mas também para integridade de dados. Um índice exclusivo não permite que nenhum valor duplicado seja inserido na tabela. A seguir está a sintaxe básica.
Sintaxe
CREATE UNIQUE INDEX index_name
on table_name (column_name)
Exemplo
CREATE UNIQUE INDEX uniqueindex
on customers (NAME)
Índices Compostos
Um índice composto é um índice em duas ou mais colunas de uma tabela. A seguir está a sintaxe básica.
Sintaxe
CREATE INDEX index_name on table_name (column1, column2)
Exemplo
CREATE INDEX compositeindex
on customers (NAME, ID)
Seja para criar um índice de coluna única ou um índice composto, leve em consideração a (s) coluna (s) que você pode usar com muita frequência na cláusula WHERE de uma consulta como condições de filtro.
Se houver apenas uma coluna usada, um índice de coluna única deve ser a escolha. Se houver duas ou mais colunas que são freqüentemente usadas na cláusula WHERE como filtros, o índice composto seria a melhor escolha.
Índices Implícitos
Índices implícitos são índices criados automaticamente pelo servidor de banco de dados quando um objeto é criado. Os índices são criados automaticamente para restrições de chave primária e restrições exclusivas.
Comando DROP INDEX
Um índice pode ser eliminado usando o comando MS SQL SERVER DROP. Deve-se ter cuidado ao descartar um índice, pois o desempenho pode ser reduzido ou melhorado.
Sintaxe
A seguir está a sintaxe básica.
DROP INDEX tablename.index_name
Quando evitar índices?
Embora os índices tenham como objetivo melhorar o desempenho dos bancos de dados, há momentos em que eles devem ser evitados. As seguintes diretrizes indicam quando o uso de um índice deve ser reconsiderado -
Os índices não devem ser usados em tabelas pequenas.
As tabelas que possuem operações de inserção ou atualização de lote grandes e frequentes não devem ser indexadas.
Os índices não devem ser usados em colunas que contêm um grande número de valores NULL.
As colunas que são frequentemente manipuladas não devem ser indexadas.