none
Particionamento de tabelas existente RRS feed

  • Pergunta

  • Senhores,

    eu tenho uma tabela de log com mais de 400 milhoes de registro (tabela de log), eu queria particionar a tabela ja existente, é possivel? como posso fazer isso?

    terça-feira, 25 de novembro de 2014 17:41

Respostas

  • Boa tarde Renata,

    É possível sim particionar uma tabela existente. Para isso deve seguir alguns passos como: criar filegroups, arquivos, function e schema de particionamento.
    Você encontra maiores informações sobre isso no post abaixo: 

    https://pedrogalvaojunior.wordpress.com/tag/particionamento/

    Após criar todos esses itens, você tem dois caminhos para fazer sua tabela participar do particionamento: (1) recriar o índice clustered da tabela no schema de particionamento ou (2) Criar uma tabela idêntica a sua dentro do schema de particionamento, copiar os dados e renomear sua tabela antiga para "_old" e sua tabela nova para o nome original.

    Pelo fato da sua tabela ser grande, a recriação do índice clustered pode demorar um pouco e, por isso, você deve analisar sua janela e simular isso num ambiente igual (ou o mais próximo possível) de produção.

    Os links abaixo podem te ajudar também:

    http://msdn.microsoft.com/pt-br/library/ms188730.aspx

    http://www.mssqltips.com/sqlservertip/2888/how-to-partition-an-existing-sql-server-table/

    Você pretende particionar por qual campo?

    []'s


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 25 de novembro de 2014 18:37

Todas as Respostas

  • Boa tarde Renata,

    É possível sim particionar uma tabela existente. Para isso deve seguir alguns passos como: criar filegroups, arquivos, function e schema de particionamento.
    Você encontra maiores informações sobre isso no post abaixo: 

    https://pedrogalvaojunior.wordpress.com/tag/particionamento/

    Após criar todos esses itens, você tem dois caminhos para fazer sua tabela participar do particionamento: (1) recriar o índice clustered da tabela no schema de particionamento ou (2) Criar uma tabela idêntica a sua dentro do schema de particionamento, copiar os dados e renomear sua tabela antiga para "_old" e sua tabela nova para o nome original.

    Pelo fato da sua tabela ser grande, a recriação do índice clustered pode demorar um pouco e, por isso, você deve analisar sua janela e simular isso num ambiente igual (ou o mais próximo possível) de produção.

    Os links abaixo podem te ajudar também:

    http://msdn.microsoft.com/pt-br/library/ms188730.aspx

    http://www.mssqltips.com/sqlservertip/2888/how-to-partition-an-existing-sql-server-table/

    Você pretende particionar por qual campo?

    []'s


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 25 de novembro de 2014 18:37
  • Renata,

    Complementando a resposta da Mariana, esta funcionalidade você só tem na versão Data Center (SQL Server 2008) e Enterprise (SQL Server 2012 e 2014).

    Você também poderá particionar seus índices (clusterizados ou não) e se você uitliza a parametrização com INCLUDE você poderá obter um bom ganho de performance.

    Lembrando que dependendo da coluna e dos limites que você definir como base para cada partição (esta tabela poderá continuar crescendo) poderá gerar uma partição com um volume de dados muito maior do que outros. Então faça um estudo prévio para escolha da coluna e para definição dos limites de cada partição.

    Eu prefiro utilizar o T-SQL, mas muitos tem maior facilidade de utilizar as ferramentas do SSMS, então segue mais conteúdos interessantes para você.

    Para maiores informações veja:

    http://msdn.microsoft.com/pt-br/library/ms190787.aspx

    http://technet.microsoft.com/pt-br/library/cc280568(v=sql.105).aspx

    http://blogs.technet.com/b/bpaulblog/archive/2011/05/16/sql-partition-split-takes-forever-to-create-new-empty-partition.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 26 de novembro de 2014 10:08
    Moderador