Partilhar via


Modificar um esquema de partição

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Você pode modificar um esquema de partição 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. Para fazer isso, atribua a propriedade NEXT USED a um grupo de arquivos.

Você pode atribuir a propriedade NEXT USED a um grupo de arquivos vazio ou a um que já contém uma partição. Em outras palavras, um grupo de arquivos pode conter mais de uma partição. Saiba mais sobre grupos de arquivos e estratégias de particionamento no Filegroups.

Limitations

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

O particionamento é totalmente suportado no Azure SQL Database e no Banco de Dados SQL no Fabric. Todas as partições devem ser colocadas nos PRIMARY grupos de arquivos porque somente o PRIMARY grupo de arquivos é fornecido no Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric.

O particionamento de tabela está disponível em pools SQL dedicados no Azure Synapse Analytics, com algumas diferenças de sintaxe. Para obter mais informações, consulte Particionando tabelas no pool SQL dedicado.

Permissions

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

  • Permissão para ALTER ANY DATASPACE. As permissões são atribuídas por padrão aos 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 na base de dados na qual o esquema de partição foi criado.

  • CONTROL SERVER ou permissão ALTER ANY DATABASE no servidor da base de dados onde o esquema de partição foi criado.

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

Este exemplo usa o banco de dados de exemplo AdventureWorks.

  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.

    Note

    Para simplificar, esse código cria novos grupos de arquivos, mas não atribui arquivos a eles. Isso permite a demonstração de 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 no 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 o SSMS

  1. No Pesquisador de Objetos, conecte-se ao banco de dados de destino.

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

  3. Selecione o sinal de mais para expandir a pasta Storage.

  4. Selecione o sinal de mais para expandir a pasta Partition Schemes.

  5. Clique com o botão direito do rato no esquema de partições que pretende eliminar e selecione Eliminar.

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

Próximos passos

Saiba mais sobre o particionamento de tabelas nestes artigos: