Criar índices não clusterizados
Você pode criar índices não clusterizados no SQL Server 2012 usando o SQL Server Management Studio ou o Transact-SQL. Um índice não clusterizado é uma estrutura de índice separada dos dados armazenados em uma tabela que reorganiza um ou mais colunas selecionadas. Índices não clusterizados costumam ser uma forma mais rápida de localizar dados do que a busca na tabela subjacente; as consultas às vezes podem ser totalmente respondidas pelos dados no índice não clusterizado, ou o índice não clusterizado pode apontar o Mecanismo de Banco de Dados para as linhas na tabela subjacente. Geralmente, os índices não clusterizados são criados para aprimorar o desempenho de consultas utilizadas com frequência, não cobertas pelo índice clusterizado, ou para localizar linhas em uma tabela sem um índice clusterizado (denominado heap). Você pode criar vários índices não clusterizados em uma tabela ou exibição indexada.
Neste tópico
Antes de começar:
Implementações comuns
Segurança
Para criar um índice não clusterizado, usando:
SQL Server Management Studio
Transact-SQL
Antes de começar
Implementações comuns
Os índices não clusterizados são implementados das seguintes maneiras:
Restrições UNIQUE
Quando se cria uma restrição UNIQUE, é criado, por padrão, um índice não clusterizado exclusivo para impor uma restrição UNIQUE por padrão. Você pode especificar um índice clusterizado exclusivo caso ainda não exista um índice clusterizado na tabela. Para obter mais informações, consulte Restrições exclusivas e restrições de verificação.
Índice independente de uma restrição
Por padrão, será criado um índice não clusterizado se não for especificado como clusterizado. O número máximo de índices não clusterizados que podem ser criados em uma tabela é 999. Isso inclui qualquer índice criado por restrições PRIMARY KEY ou UNIQUE, mas não inclui índices XML.
Índice não clusterizado em uma exibição indexada
Depois que for criado um índice clusterizado exclusivo em uma exibição, poderão ser criados índices não clusterizados. Para obter mais informações, consulte Criar exibições indexadas.
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 não clusterizado usando o Designer de Tabela
No Pesquisador de Objetos, expanda o banco de dados que contém a tabela na qual você deseja criar um índice não clusterizado.
Expanda a pasta Tabelas.
Clique com o botão direito do mouse na tabela na qual você deseja criar um índice não clusterizado e selecione Design.
No menu Designer de Tabela, clique em Índices/Chaves.
Na caixa de diálogo Índices/Chaves, clique em Adicionar.
Selecione o novo índice na caixa de texto Índice ou Chave Exclusiva/Primária Selecionada.
Na grade, selecione Criar como Clusterizado e selecione Não na lista suspensa, à direita da propriedade.
Clique em Fechar.
No menu Arquivo, clique em Salvar table_name.
Para criar um índice não clusterizado usando o Pesquisador de Objetos
No Pesquisador de Objetos, expanda o banco de dados que contém a tabela na qual você deseja criar um índice não clusterizado.
Expanda a pasta Tabelas.
Expanda a tabela na qual você deseja criar um índice não clusterizado.
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 não clusterizado.
Clique em OK.
Na caixa de diálogo Novo Índice, clique em OK.
[Top]
Usando Transact-SQL
Para criar um índice não clusterizado em uma tabela
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 -- Find an existing index named IX_ProductVendor_VendorID and delete it if found. IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_ProductVendor_VendorID') DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor; GO -- Create a nonclustered index called IX_ProductVendor_VendorID -- on the Purchasing.ProductVendor table using the BusinessEntityID column. CREATE NONCLUSTERED INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor (BusinessEntityID); GO
Para obter mais informações, consulte CREATE INDEX (Transact-SQL).
[Top]