Criar índices com colunas incluídas
Este tópico descreve como adicionar colunas incluído (ou não chave) para estender a funcionalidade de índices não clusterizados no SQL Server 2012 usando o SQL Server Management Studio ou o Transact-SQL. Ao incluir colunas não chave, você pode criar índices não clusterizados que abrangem mais consultas. Isto porque as colunas não chave têm os seguintes benefícios:
Elas podem ser tipos de dados não permitidos como colunas de chave de índice.
Elas não são consideradas pelo Mecanismo de Banco de Dados ao calcular o número de colunas de chave de índice ou o tamanho da chave de índice.
Um índice com colunas não chave pode melhorar o desempenho de consulta significativamente quando todas as colunas na consulta são incluídas no índice como colunas de chave ou não chave. Os ganhos de desempenho são alcançados porque o otimizador de consulta pode localizar todos os valores de coluna dentro do índice; os dados da tabela ou do índice clusterizado não são acessados, o que resulta em menos operações de E/S de disco.
Observação |
---|
Quando um índice contém todas as colunas referenciadas por uma consulta, ele costuma ser referenciado como se abrangendo a consulta. |
Neste tópico
Antes de começar:
Recomendações de design
Limitações e restrições
Segurança
Para criar um índice com colunas não chave, usando:
SQL Server Management Studio
Transact-SQL
Antes de começar
Recomendações de design
Redesenhe índices não clusterizados com um comprimento de chave de índice, de tal forma que apenas as colunas usadas para buscas e pesquisas sejam colunas de chave. Transforme todas as outras colunas que abrangem a consulta em colunas não chave. Deste modo, você terá todas as colunas necessárias para abranger a consulta, mas a chave de índice em si é pequena e eficiente.
Inclua colunas não chave em um índice não clusterizado para evitar exceder as limitações do tamanho atual do índice, de um máximo de 16 colunas de chave, e um tamanho máximo de chave de índice de 900 bytes. O Mecanismo de Banco de Dados não considera as colunas não chave ao calcular o número de colunas de chave de índice, ou o tamanho da chave do índice.
Limitações e restrições
As colunas não chave só podem ser definidas em índices não clusterizados.
Todos os tipos de dados, exceto text, ntext e image, podem ser usados como colunas não chave.
As colunas computadas que são determinísticas e precisas ou imprecisas podem ser colunas não chave. Para obter mais informações, consulte Índices em colunas computadas.
As colunas computadas derivadas dos tipos de dados image, ntext e text podem ser colunas não chave, desde que o tipo de dados da coluna computada seja permitido como uma coluna de índice não chave.
As colunas não chave não podem ser descartadas de uma tabela, a menos que o índice dessa tabela seja descartado primeiro.
As colunas não chave não podem ser alteradas, exceto para fazer o seguinte:
Alterar a nulidade da coluna de NOT NULL para NULL.
Aumentar o comprimento das colunas varchar, nvarchar ou varbinary.
Segurança
Permissões
Requer a permissão ALTER na tabela ou exibição. O usuário deve ser membro da função de servidor fixa sysadmin ou das funções de banco de dados fixas db_ddladmin e db_owner.
[Top]
Usando o SQL Server Management Studio
Para criar um índice com colunas não chave
No Pesquisador de Objetos, clique no sinal de adição para expandir o banco de dados que contém a tabela na qual você deseja criar um índice com colunas não chave.
Clique no sinal de adição para expandir a pasta Tabelas.
Clique no sinal de adição para expandir a tabela na qual você deseja criar um índice com colunas não chave.
Clique com o botão direito do mouse na pasta Índices, aponte para Novo Índice e selecione Índice Não Clusterizado….
Na caixa de diálogo Novo Índice, na página Geral, insira o nome do novo índice na caixa Nome do índice.
Na guia Colunas de chave de índice, clique em Adicionar….
Na caixa de diálogo Selecionar Colunas de table_name, marque as caixas de seleção das colunas de tabela a serem adicionadas ao índice.
Clique em OK.
Na guia Colunas incluídas, clique em Adicionar….
Na caixa de diálogo Selecionar Colunas de table_name, marque as caixas de seleção das colunas de tabela a serem adicionadas ao índice como colunas não chave.
Clique em OK.
Na caixa de diálogo Novo Índice, clique em OK.
[Top]
Usando Transact-SQL
Para criar um índice com colunas não chave
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.
USE AdventureWorks2012; GO -- Creates a nonclustered index on the Person.Address table with four included (nonkey) columns. -- index key column is PostalCode and the nonkey columns are -- AddressLine1, AddressLine2, City, and StateProvinceID. CREATE NONCLUSTERED INDEX IX_Address_PostalCode ON Person.Address (PostalCode) INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID); GO
Para obter mais informações, consulte CREATE INDEX (Transact-SQL).
[Top]