Modificar um esquema de partição

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Você pode modificar um esquema de partição no SQL Server, no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure designando um grupo de arquivos para armazenar a próxima partição adicionada a uma tabela particionada usando o SQL Server Management Studio (SSMS) ou o Transact-SQL. Isso é feito ao atribuir a propriedade NEXT USED a um grupo de arquivos.

Você pode atribuir a propriedade NEXT USED a um grupo de arquivos vazio ou para um que já mantenha uma partição. Em outras palavras, um grupo de arquivos pode manter mais de uma partição. Saiba mais sobre grupos de arquivos e estratégias de particionamento em Grupos de Arquivos.

O particionamento de tabela também está disponível em pools de SQL dedicados no Azure Synapse Analytics, com algumas diferenças de sintaxe. Saiba mais em Como particionar tabelas no pool de SQL dedicado.

Limitações

Qualquer grupo de arquivos afetado por ALTER PARTITION SCHEME deve estar online.

Observação

O Banco de Dados SQL do Azure dá suporte apenas ao grupo de arquivos PRIMARY.

Permissões

As seguintes permissões podem ser usadas para executar ALTER PARTITION SCHEME:

  • Permissão ALTER ANY DATASPACE. Essa permissão tem como padrão os membros da função de servidor fixa sysadmin e das funções de banco de dados fixas db_owner e db_ddladmin.

  • Permissão CONTROL ou ALTER no banco de dados no qual o esquema de partição foi criado.

  • Permissão CONTROL SERVER ou ALTER ANY DATABASE no servidor do banco de dados no qual o esquema de partição foi criado.

Modificar um esquema de partição com Transact-SQL

Este exemplo usa o banco de dados AdventureWorks de exemplo.

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

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

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

    Observação

    Para simplificar, esse código cria grupos de arquivos, mas não atribui arquivos a eles. Isso permite demonstrar como modificar o esquema de partição, mas não é um exemplo completo de configuração de um objeto particionado. Encontre exemplos de criação de tabelas e índices particionados em Criar tabelas e índices particionados.

    USE AdventureWorks2022;  
    GO
    -- add five new filegroups to the AdventureWorks2022 database  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test1fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test4fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test5fg;  
    GO 
    
    -- if the "myRangePF1" partition function and the "myRangePS1" partition scheme exist,  
    -- drop them from the AdventureWorks2022 database  
    IF EXISTS (SELECT * FROM sys.partition_functions  
        WHERE name = 'myRangePF1')  
    DROP PARTITION FUNCTION myRangePF1;  
    GO  
    IF EXISTS (SELECT * FROM sys.partition_schemes  
        WHERE name = 'myRangePS1')  
    DROP PARTITION SCHEME myRangePS1;  
    GO  
    
    -- create the new partition function "myRangePF1" with four partition groups  
    CREATE PARTITION FUNCTION myRangePF1 (int)  
    AS RANGE LEFT FOR VALUES ( 1, 100, 1000 );  
    GO  
    
    -- create the new partition scheme "myRangePS1"that will use   
    -- the "myRangePF1" partition function with five file groups.  
    -- The last filegroup, "test5fg," will be kept empty but marked  
    -- as the next used filegroup in the partition scheme.  
    CREATE PARTITION SCHEME myRangePS1  
    AS PARTITION myRangePF1  
    TO (test1fg, test2fg, test3fg, test4fg, test5fg);  
    GO  
    
    --Split "myRangePS1" between boundary_values 100 and 1000  
    --to create two partitions between boundary_values 100 and 500  
    --and between boundary_values 500 and 1000.  
    ALTER PARTITION FUNCTION myRangePF1 ()  
    SPLIT RANGE (500);  
    GO  
    
    -- Allow the "myRangePS1" partition scheme to use the filegroup "test5fg"  
    -- for the partition with boundary_values of 100 and 500  
    ALTER PARTITION SCHEME myRangePS1  
    NEXT USED test5fg;  
    GO  
    

Excluir um esquema de partição com SSMS

  1. Conecte-se ao banco de dados de destino no Pesquisador de Objetos.

  2. Selecione o sinal de adição para expandir o banco de dados onde você quer excluir um esquema de partição.

  3. Selecione o sinal de adição para expandir a pasta Armazenamento.

  4. Selecione o sinal de adição para expandir a pasta Esquemas de Partição.

  5. Clique com o botão direito do mouse no esquema de partição a ser excluído e selecione Excluir.

  6. Na caixa de diálogo Excluir Objeto , verifique se o esquema de partição correto está selecionado e selecione OK.

Próximas etapas

Saiba mais sobre o particionamento de tabela nestes artigos: