none
Melhor estratégia tabelas com registros antigos pouco utilizados RRS feed

  • Pergunta

  • Olá pessoal! 

    Um servidor com SQLExpress 2008R2 em um banco cuja tabela de vendas responde pela maior parte do volume de dados (8,5gb), embora os dados dos últimos 10 anos estejam na tabela, em uma estatisca com usuários notamos que a necessidade frequente são apenas os dados do ano corrente ou no maximo incluir os dados do ano anteior, sendo o restante raramente consultado. 

    Atualmente não temos problemas de desempenho, porém sabemos do limite de 10GB para todo o banco.

    A melhor solução seria continuar o uso do SQlServer em uma versão superior sem a limitação de tamanho, porém isso não está no plano do cliente, que propos a troca do SGBD. 

    Sem apagar conteúdo ou criar um "sistema de histórico", vocês teriam alguma sugestão de estratégia que permita "arquivar" esse contéudo antigo em um segundo banco de dados, de forma que caso seja realizada a consulta essa informação possa estar disponível de forma transparente para as aplicações clientes do banco.

    Como vocês resolveriam essa situação?

    Grato pela atenção e vosso tempo,

    segunda-feira, 19 de agosto de 2019 13:02

Respostas

Todas as Respostas

  • Olá Matheus,

    Infelizmente a versão Express tem além da limitação de tamanho , limitação de features rsrs. 

    Para manter sua versão Express , a unica forma que vejo seria criar uma nova base e mover os dados antigos para lá. Mas, para acessar os dados antigos , teria que haver modificação no sistema para apontar para a nova base sempre que for necessário recorrer a dados mais antigos. E também , você criar um script de movimentação de dados ( isso ai mais simples) para fazer a cada ano por exemplo. 

    Esta nova base teria a mesma limitação de 10GB , visto que a limitação é por base. 



    Jefferson Clyton Pereira da Silva - [MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    segunda-feira, 19 de agosto de 2019 13:59
  • Bom dia , a opção do  do "Jefferson Clyton Pereira da Silva" é interessante , criar um novo banco de dados para migrar os dados antigos é uma alternativa para fugir da limitação do tamanho do banco ,mas não vai resolver a longo prazo  mas é a melhor opção no momento ,

    eu antes de fazer essa alteração faria o seguinte.

    1) criar um portfólio  com a comparação do Sql server express e o Standard , como limitação e o quanto seu cliente vai ganhar,isso em performance, escalabilidade e segurança ,

    aqui uns links bons 

    https://stackify.com/what-is-sql-server-express/

    https://www.microsoft.com/pt-br/sql-server/sql-server-editions-express

    caso a negativa de atualizar , siga em frente , depois da migração dos dados ,vc pode criar uma tabela particionada por ano para "Vendas"  .

    WITH Eu AS (SELECT *

        FROM

        (

            VALUES

                (CONCAT('Wesley Neves ', '#', '.NET Developer')),

                (CONCAT('M®CSA SQL 2016 Database Development', ' # ', 'MTA-SQL Server',' # ','MCP')),

                ('Pós Graduado em Banco de Dados com ênfase em BI'),

                        ('Pós Graduando em Big Data e Analytics')

        ) AS X (value)

       )

    SELECT *

    FROM Eu;


    Wesley Neves




    Wesley Neves

    segunda-feira, 19 de agosto de 2019 14:33
  • Deleted
    • Marcado como Resposta MatheusFernando sexta-feira, 6 de setembro de 2019 10:50
    segunda-feira, 19 de agosto de 2019 14:45
  • Prezado José, 

    A ideia é bem interessante. 

    A segunda forma com instancias diferentes só é um pouco mais complexa no sentido de manutenção , digo mais em relação ao Backup.  Acho que a limitação de memória é de 1GB redondo , mas, já estaria valendo o ganho de recurso, visto que 1GB livre ele deve ter na maquina rsrs. 

    A primeira forma, criando outra base eu acho que seria a mais adequada. Ainda cai na questão de uma manutenção mais apurada em relação a backup, mas, muito mais fácil de gerenciar (no mesmo script que ele deve ter de backup é só incluir a base nova).


    Jefferson Clyton Pereira da Silva - [MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    segunda-feira, 19 de agosto de 2019 16:14
  • Deleted
    segunda-feira, 19 de agosto de 2019 16:48
  • Deleted
    segunda-feira, 26 de agosto de 2019 23:05
  • Oi José, 

    Concordei com vc. Inclusive irei dar uma olhada no seu artigo, como já tinha feito com o primeiro.

    O mecanismo para fazer o restore entre os 2 bancos deverá ser feito através de script unico para as 2 instancias.

    Nâo me parece tão complicado para fazer, e é sempre legal este tipo de desafio novo. 


    Jefferson Clyton Pereira da Silva - [MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    terça-feira, 27 de agosto de 2019 00:06