Modificando tabelas e índices particionados

Você pode modificar tabelas e índices particionados e índices dos seguintes modos:

  • Modifique uma função de partição para particionar novamente qualquer tabela ou índice que participe dessa função.

  • Modifique um esquema de partição para designar um grupo de arquivos para manter uma partição adicionada recentemente.

  • Converta uma tabela não particionada em uma tabela particionada.

  • Converta uma tabela particionada em uma tabela não particionada.

  • Transfira dados adicionando, movendo ou removendo partições

Modificando uma função de partição

Você pode mudar o modo em que uma tabela ou um índice é particionado adicionando ou subtraindo o número de partições especificadas, em incrementos de 1, na função de partição da tabela ou índice particionado.

Ao adicionar uma partição, você “divide” em duas uma partição existente e redefine os limites das novas partições. Ao descartar uma partição, você "funde" os limites das duas partições criando uma só. Esta última ação repopula uma partição e deixa a outra partição não atribuída.

Observação importanteImportante

Ao adicionar uma partição, é preciso que haja um grupo de arquivos que esteja marcado com a propriedade NEXT USED para manter a nova partição. Para obter mais informações sobre como especificar um grupo de arquivos NEXT USED em um esquema de partição, consulte Modificando um esquema de partição adiante neste tópico.

ALTER PARTITION FUNCTION só pode ser usada para dividir uma partição em duas ou para mesclar duas partições em uma. Para alterar a forma como uma tabela ou índice é particionado (por exemplo, de 10 partições em 5), você pode usar qualquer uma das opções a seguir. Dependendo da configuração do sistema, essas opções podem variar quanto ao consumo de recursos que utilizam.

  • Crie uma nova tabela particionada com a função de partição desejada e insira os dados da tabela antiga na nova tabela, usando uma instrução INSERT INTO...SELECT FROM.

  • Crie um índice clusterizado particionado em um heap.

    ObservaçãoObservação

    Índices particionados que sejam descartados causarão heaps particionados.

  • Descarte e recrie um índice particionado existente usando o comando CREATE INDEX Transact-SQL com a cláusula DROP EXISTING = ON.

  • Execute uma seqüência de instruções ALTER PARTITION FUNCTION.

O SQL Server não fornece suporte de replicação para modificar uma função de partição. Se você quiser fazer alterações em uma função de partição no banco de dados de publicação, será preciso fazê-las manualmente no banco de dados de assinatura.

Para modificar uma função de partição

Modificando um esquema de partição

Você pode Modificar um esquema de partição ao designar um grupo de arquivos para manter a partição seguinte que seja adicionada à tabela particionada. 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.

Para modificar um esquema de partição

Convertendo uma tabela não particionada em uma tabela particionada.

Você pode transformar uma tabela não particionada existente em uma tabela particionada de dois modos.

Um modo é criar um índice clusterizado particionado na tabela usando a instrução CREATE INDEX. Essa ação é similar a criar um índice clusterizado em qualquer tabela, pois o SQL Server essencialmente descarta a tabela e a recria em um formato de índice clusterizado. Se um índice clusterizado particionado já tiver sido aplicado à tabela, você poderá descartar o índice e reconstruí-lo em um esquema de partição, usando CREATE INDEX com cláusula DROP EXISTING = ON.

Para obter mais informações sobre índices clusterizados, consulte Diretrizes de design de índices clusterizados.

Outro modo é usar a instrução Transact-SQL ALTER TABLE SWITCH para alternar os dados da tabela para uma tabela particionada em intervalos que tenha apenas uma partição. Essa tabela particionada já deve existir antes da ocorrência da conversão e sua única partição deve estar vazia. Para obter mais informações sobre alternância de partições, consulte Transferindo dados de forma eficaz usando a alternância de partição. Depois de a tabela ser modificada como uma tabela particionada, você pode modificar sua função de partição para adicionar partições, como descrito anteriormente em Modificando uma função de partição.

Para converter uma tabela existente em uma tabela particionada

Convertendo uma tabela particionada em uma tabela não particionada.

Alterar uma tabela particionada para uma tabela não particionada simplesmente envolve a modificação da função de partição de uma tabela particionada de modo que a tabela seja formada apenas por uma partição. Embora tecnicamente ela ainda seja uma tabela particionada, esse status é irrelevante para todas as operações subseqüentes que você queira executar na tabela.

Se um índice clusterizado particionado já tiver sido aplicado à tabela, você poderá obter o mesmo resultado descartando o índice e reconstruindo-o como um índice não particionado. Você pode fazer isso usando o comando Transact-SQL CREATE INDEX com a cláusula DROP EXISTING = ON.

Para converter uma tabela particionada em uma tabela padrão sem partições

Transferindo dados com alternância de partição

A instrução Transact-SQL ALTER TABLE... SWITCH permite que você transfira blocos de dados rápida e eficazmente entre tabelas particionadas. Para obter mais informações, consulte Transferindo dados de forma eficaz usando a alternância de partição.