Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Este tópico descreve como mover um índice existente do seu grupo de ficheiros atual para outro no SQL Server utilizando o SQL Server Management Studio ou Transact-SQL.
Para considerações de design, incluindo porque poderá querer colocar um índice não agrupado num grupo de ficheiros diferente, veja Colocação de Índice em Grupos de Ficheiros ou Esquemas de Partições.
Limitações e restrições
Se uma tabela tiver um índice agrupado, mover o índice agrupado para um novo grupo de ficheiros move a tabela para esse grupo de ficheiros.
Não pode mover índices criados usando uma restrição ÚNICA ou CHAVE PRIMÁRIA usando o Management Studio. Para mover estes índices, utilize a instrução CREATE INDEX com a opção (DROP_EXISTING=ON) em Transact-SQL.
Permissions
Requer 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 db_ddladmin e db_owner fixas.
Utilize SQL Server Management Studio
Para mover um índice existente para um grupo de ficheiros diferente usando o Table Designer
No Object Explorer, clique no sinal de mais para expandir a base de dados que contém a tabela com o índice que pretende mover.
Clique no sinal de mais para expandir a pasta Tabelas.
Clique com o botão direito na tabela que contém o índice que quer mover e selecione Design.
No menu do Designer de Tabela , clique em Índices/Chaves.
Selecione o índice que quer mover.
Na grelha principal, expanda a Especificação do Espaço de Dados.
Selecione Nome do Grupo de Ficheiros ou do Esquema de Partição e selecione da lista o grupo de ficheiros ou esquema de partições para onde quer mover o índice.
Clique em Fechar.
No menu Arquivo, selecione Guardartable_name.
Para mover um índice existente para um grupo de ficheiros diferente no Object Explorer
No Object Explorer, clique no sinal de mais para expandir a base de dados que contém a tabela com o índice que pretende mover.
Clique no sinal de mais para expandir a pasta Tabelas.
Clique no sinal de mais para expandir a tabela que contém o índice que pretende mover.
Clique no sinal de mais para expandir a pasta Índices.
Clique com o botão direito no índice que quer mover e selecione Propriedades.
Em Selecionar uma página, selecione Armazenamento.
Selecione o grupo de ficheiros para onde mover o índice.
Se a tabela ou índice estiver particionado, selecione o esquema de partição para mover o índice. Para mais informações sobre índices particionados, consulte Tabelas e Índices Particionados.
Se estiver a mover um índice clusterizado, pode usar processamento online. O processamento online permite o acesso simultâneo dos utilizadores aos dados subjacentes e a índices não agrupados durante a operação do índice. Para mais informações, consulte Executar Operações de Índice Online.
Em computadores multiprocessador que usam SQL Server, pode configurar o número de processadores usados para executar a instrução índice especificando um grau máximo de valor de paralelismo. A funcionalidade de operações de índice paralelo não está disponível em todas as edições do SQL Server. Para mais informações sobre operações de índice paralelo, consulte Configurar Operações de Índice Paralelo. Para uma lista de funcionalidades suportadas pelas edições do SQL Server, consulte Edições e funcionalidades suportadas do SQL Server 2025.
Clique em OK.
A seguinte informação está disponível na página de Armazenamento da caixa de diálogo Propriedades do Índice -index_name :
Filegroup
Armazena o índice no grupo de ficheiros especificado. A lista mostra apenas grupos de ficheiros padrão (linhas). A seleção predefinida da lista é o grupo de ficheiros PRIMARY da base de dados.
Grupo de arquivos Filestream
Especifica o grupo de ficheiros para dados FILESTREAM. Esta lista mostra apenas grupos de ficheiros FILESTREAM. A seleção padrão da lista é o grupo de ficheiros PRIMARY FILESTREAM.
Esquema de partição
Armazena o índice num esquema de partição. Clicar em Esquema de Partição ativa a grelha abaixo. A seleção padrão da lista é o esquema de partição utilizado para armazenar os dados da tabela. Quando seleciona um esquema de partição diferente na lista, a informação na grelha é atualizada.
A opção de esquema de partição não está disponível se não existirem esquemas de partição na base de dados.
Esquema de partição de fluxo de ficheiros
Especifica o esquema de partição para os dados do FILESTREAM. O esquema de partição deve ser simétrico com o esquema especificado na opção de esquema de partição .
Se a tabela não estiver particionada, o campo estará em branco.
Parâmetro do Esquema de Partição
Mostra o nome da coluna que participa no esquema de partição.
Coluna da Tabela
Selecione a tabela ou a vista para mapear ao esquema de partições.
Tipo de Dados da Coluna
Apresenta informações sobre o tipo de dados da coluna.
Note
Se a coluna da tabela for uma coluna computada, o Tipo de Dados da Coluna mostra "coluna computada."
Permitir o processamento online de extratos DML enquanto se move o índice
Permite aos utilizadores aceder aos dados subjacentes da tabela ou do índice agrupado e a quaisquer índices não agrupados associados durante a operação de índice.
Note
Esta opção não está disponível para índices XML nem quando o índice é um índice agrupado desativado.
Defina o grau máximo de paralelismo
Limita o número de processadores a usar durante a execução paralela do plano. O valor predefinido, 0, utiliza o número real de CPUs disponíveis. Definir o valor para 1 suprime a geração paralela de planos; Definir o valor para um número superior a 1 restringe o número máximo de processadores usados por uma única execução de consulta. Esta opção só fica disponível se a caixa de diálogo estiver no estado Reconstruir ou Recriar .
Note
Se for especificado um valor superior ao número de CPUs disponíveis, é utilizado o número real de CPUs disponíveis.
Usando Transact-SQL
Para mover um índice existente para um grupo de ficheiros diferente
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 AdventureWorks2022; GO -- Creates the TransactionsFG1 filegroup on the AdventureWorks2022 database ALTER DATABASE AdventureWorks2022 ADD FILEGROUP TransactionsFG1; GO /* Adds the TransactionsFG1dat3 file to the TransactionsFG1 filegroup. Please note that you will have to change the filename parameter in this statement to execute it without errors. */ ALTER DATABASE AdventureWorks2022 ADD FILE ( NAME = TransactionsFG1dat3, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13\MSSQL\DATA\TransactionsFG1dat3.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) TO FILEGROUP TransactionsFG1; GO /*Creates the IX_Employee_OrganizationLevel_OrganizationNode index on the TransactionsPS1 filegroup and drops the original IX_Employee_OrganizationLevel_OrganizationNode index. */ CREATE NONCLUSTERED INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee (OrganizationLevel, OrganizationNode) WITH (DROP_EXISTING = ON) ON TransactionsFG1; GO
Passos seguintes
Para mais informações, vejaCREATE INDEX (Transact-SQL).