none
Archive no SQL RRS feed

  • Pergunta

  • Boa tarde!

    Sei que o SQL trabalho com o conceito de arquivar dados antigos automaticamente e transforma-los somente em leitura.
    Onde encontro documentação sobre isto?

    Ao arquivar sei que o dado continua disponivel para consulta e o SQL se reponsabiliza para buscar o dado quando necessário.
    Como isto funciona.

    O banco de archive fica na mesma instancia SQL, pode ser em outra?

    Como fica a performance?

    Obrigado pela ajuda.

    Mário
    segunda-feira, 1 de março de 2010 17:38

Respostas

Todas as Respostas

  • Mario,

    Aconselho inicialmente a consultar o Books On-Line, com certeza você vai encontrar muita informação.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 1 de março de 2010 17:44
    Moderador
  • Boa Tarde,

    Acredito que você esteja se referindo ao termo Database Snapshot.
    Sugiro procurar por essa funcionalidade. Você encontrará muita documentação.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Encontrando tabelas não utilizadas
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!957.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 1 de março de 2010 20:02
  • Obrigado as respostas.

    São duas opções que eu descobri. O Particionamento de dados, que eu posso fazer com que determinados dados fiquem em diferentes partições.
    E o Snapshot, que simplesmente faz uma copia do momento.

    Mas acho que me confundi. O Sql não tem archive, ou seja, arquivar os dados mediante um regra em outra tabela ou base e manter a referencia com a tabela principal?
    Sei que dá para fazer isto programando, quero saber se não tem nada nativo.

    A ideia seria que quando os dados fossem ficando velhos fossem pra uma tabela ou base historica, e que ao fazer select na tabela principal e o dado tivesse no historico ele também viria.

    Isso aumentaria performance, pois a tabela principal é menor e a o numero de vezes que o dado historico é acessado normalmente é rara.

    Seria uma mistura do snapshot e do particionamento de tabelas.

    Obrigado.
    Mário
    segunda-feira, 1 de março de 2010 23:09
  • Boa Noite,

    O uso do particionamento pode sim fazer o que você pretende. Para converter partições antigas em tabelas, você terá que utilizar o operador SWITCH.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Encontrando tabelas não utilizadas
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!957.entry
    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Mario Fialho terça-feira, 2 de março de 2010 14:15
    terça-feira, 2 de março de 2010 01:09
  • Segue um link muito bom sobre particionamento:

    http://www.sqlskills.com/resources/Whitepapers/Partitioning%20in%20SQL%20Server%202005%20Beta%20II.htm


    Fabrício França Lima | MCP, MCTS, MCITP | fabricio_lima_es@hotmail.com
    terça-feira, 2 de março de 2010 02:09
  • Grato a todos.

    Sim Gustavo e Fabricio, o particionamento faz uma parte do que eu disse, mas se eu transformar uma partição em outra tabela, ou adicionar a outra tabela, perco a query.
    Pois pra acessar os dados eu terei que fazer a UNION.

    O conceito de archive é historizar, mas continuar usando a mesma query na tabela principal, e o engine de banco se encarrega de buscar no archive se houver necessidade.
    Sei que posso fazer isso com banco distribuido, fazer view, etc.

    Mas foi me dito que o SQL tinha o conceito de archive, e por isso abri o post.

    Muito obrigado.

    Mario.
    terça-feira, 2 de março de 2010 14:15
  • Olá Mario,

    O que você pode fazer é particionar a tabela e colocar as partições mais antigas em outros discos e até eventualmente marcar os arquivos antigos como leitura. Dessa forma apenas as partições mais novas serão acessadas e o SQL Server buscará os dados se achar necessário.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Encontrando tabelas não utilizadas
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!957.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 2 de março de 2010 17:47
  • Mario,

    Este conceito de archive no SQL Server existe, quando estamos fazendo na geração de arquivos de backup, onde podemos criar uma estrutura de archive para armazenar dados históricos.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 2 de março de 2010 18:00
    Moderador
  • Mario,

    o particionamento resolve seu problema pois divide a tabela "fisicamente", por assim dizer, e logicamente vc não precisará alterar seu código pois sua tabela continua sendo conhecida pelo mesmo nome.
    Se a resposta resolveu sua questão ou problema, classifique-a para manter a qualidade do forum e a confiabilidade dos participantes.

    Alex M. Bastos
    http://bastosalex.spaces.live.com
    quinta-feira, 4 de março de 2010 17:31