none
Movendo registros da particao que está no primary para outra particao que está filegroup secundary RRS feed

  • Pergunta

  • Tenho uma tabela que estou usando particionamento de dados.

    Estou usando a partição que está filegroup primary para as movimentações que são gravadas rescentemente no banco de dados, ou seja, dos ultimos 2 anos. As movimentações anteriores a 2 anos estou colocano no filegroup historico que está como read only.

    A minha dúvida é, depois que pasar 1 ano como coloco os registros que está no filegroup primary para o filegroup historico?

    E se eu precisar como posso mover um registro que está no filegroup historico para o filegroup primary?

     

    Muito obrigada

    terça-feira, 17 de janeiro de 2012 18:51

Respostas

Todas as Respostas

  • Boa Tarde,

    Você precisará redefinir a função de particionamento, para que os registros do FILEGROUP PRIMARY sejam "recategorizados". Como o FILEGROUP Historico está em READ ONLY possivelmente será necessário retirá-lo dessa condição para que os registros possam ser movidos.

    A transferência é transparente e não é necessário nenhum comando para "mover" o registro de FILEGROUP. Tenha em mente que mover dados entre FILEGROUPs é uma operação muito dispendiosa, pois, é necessário ler o primeiro FILEGROUP, alterá-lo e gravar no outro FILEGROUP. Enquanto essa movimentação ocorre você pode ter vários processos bloqueados. Se puder agende para um horário de pouca ou nenhuma utilização para ver o tempo e o impacto.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 18 de janeiro de 2012 16:01
  • Oi Gustavo,

      

    Ou seja, eu vou ter que utilizar o comando de "alter partition function" definindo um novo valor para a partição é isso?

     

     muito obrigada


    terça-feira, 24 de janeiro de 2012 12:59
  • Oi Elisângela,

    Sim. É necessário redefinir a função de particionamento. Embora sua lógica (os dois últimos anos) seja clara, ela não é determinística. O dia 24/01/2012 não está nos últimos dois anos, mas se observarmos esse mesmo dia em 24/01/2016, ele estará nos últimos dois anos, porém não é possível que o SQL Server "mova-o" automaticamente. Daí a necessidade de redefinir a função de particionamento para contemplando os novos valores.

    Só tenha em mente que ao mudar, você pode provocar um movimento de I/O gigantesco e que haverá bloqueios até que esse movimento seja finalizado. Daí a necessidade de planejar essa ação com calma.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 25 de janeiro de 2012 00:06
  • Muito obrigada Gustavo.

     

    Como sempre suas resposta são sempre muito claras e me ajudam muito.

    • Marcado como Resposta Elisangela Lima sexta-feira, 27 de janeiro de 2012 18:45
    sexta-feira, 27 de janeiro de 2012 18:44