Compartilhar via


Criar índices não clusterizados

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

Você pode criar índices não clusterizados no SQL Server 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 ajudar a encontrar dados de uma forma mais rápida 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.

Antes de começar

Implementações típicas

Os índices não clusterizados são implementados das seguintes maneiras:

  • UNIQUE Restrições**

    Quando você cria uma UNIQUE restrição, um índice não clusterizado exclusivo é criado para impor uma UNIQUE restrição por padrão. Você pode especificar um índice clusterizado exclusivo se um índice clusterizado na tabela ainda não existir. Para obter mais informações, consulte Restrições únicas e restrições de verificação.

  • Índice independente de uma restrição

    Por padrão, um índice não clusterizado será criado se clusterizado não for especificado. O número máximo de índices não clusterizados que podem ser criados em uma tabela é 999. Isso inclui todos os índices criados por PRIMARY KEY ou UNIQUE restrições, 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. Veja mais informações em Criar exibições indexadas.

Segurança

Permissions

Requer ALTER permissão 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 .

Usar o SQL Server Management Studio

Criar um índice não clusterizado usando o Designer de Tabela

  1. No Pesquisador de Objetos, expanda o banco de dados que contém a tabela na qual você deseja criar um índice não clusterizado.

  2. Expanda a pasta Tabelas .

  3. Clique com o botão direito do mouse na tabela na qual você deseja criar um índice não clusterizado e selecione Design.

  4. Clique com o botão direito do mouse na coluna na qual você deseja criar o índice não clusterizado e selecione Índices/Chaves.

  5. Na caixa de diálogo Índices/Chaves, selecione Adicionar.

  6. Selecione o novo índice na caixa de texto Índice ou Chave Exclusiva/Primária Selecionada .

  7. Na grade, selecione Criar como Clusterizado e escolha Não na lista suspensa, à direita da propriedade.

  8. Selecione Fechar.

  9. No menu Arquivo, selecione Salvartable_name.

Criar um índice não clusterizado usando o Pesquisador de Objetos

  1. No Pesquisador de Objetos, expanda o banco de dados que contém a tabela na qual você deseja criar um índice não clusterizado.

  2. Expanda a pasta Tabelas .

  3. Expanda a tabela na qual você deseja criar um índice não clusterizado.

  4. Clique com o botão direito do mouse na pasta Índices, aponte para Novo Índice e selecione Índice Não Clusterizado....

  5. Na caixa de diálogo Novo Índice , na página Geral , insira o nome do novo índice na caixa Nome do índice .

  6. Em Colunas de chave de índice, selecione Adicionar....

  7. Na caixa de diálogo Selecionar Colunas detable_name, marque as caixas de seleção das colunas da tabela a serem adicionadas ao índice não clusterizado.

  8. Selecione OK.

  9. Na caixa de diálogo Novo Índice, selecione OK.

Usar Transact-SQL

Criar um índice não clusterizado em uma tabela usando Transact-SQL

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados com o AdventureWorks2025 instalado. Você pode fazer o download AdventureWorks2025 de bancos de dados amostrados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar.

    USE AdventureWorks2022;
    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