none
Melhor maneira de trabalhar com grupos em uma base de dados SQL Server RRS feed

  • Discussão Geral

  • Olá Pessoal, boa dia.

    Criei esta discussão para saber qual são as melhores práticas para esse tipo de situação:

    Tenho a missão de transformar um banco de dados com estrutura de arquivos (não relacional) que esta arquitetado de acordo com a imagem a baixo no banco de dados relacional SQL Server:

    Modelo Atual

    *Explicando melhor seu funcionamento, existe um banco de dados que possui várias sub-pastas de grupos diferentes e cada um desses grupos possuem tabelas com a estrutura idêntica para todos os grupos e o que muda de um grupo para o outro são apenas os dados.

    Daí, gera-se a discussão? qual seria a melhor arquitetura para implementar no SQL Server? De acordo com pesquisas n, há várias maneiras diferentes de fazer, sendo algumas delas com  exemplo:

    - Juntar todos os grupos em uma única base e fazer os filegroups para cada grupo
    - Criar uma base de dados para cada grupo
    - Trabalhar com Schemas, na qual o schema seria o grupo.


    Gostaria de saber a opinião e a experiências que vocês possuem para fazer um modelo que mais se adeque a situação. Deve realmente separar os grupos e os mesmos devem possuir as mesmas estruturas.

    P.S.: Única limitação que teríamos com relação a arquitetura seria a versão do SGBD, na qual temos somente o SQL Server 2008 R2 Standard Edition

    No aguardo,

    Rafael.


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    quinta-feira, 13 de novembro de 2014 13:30

Todas as Respostas

  • Rafael,

    Nos estamos falando de qual volume de dados ? 

    Em gigas ou quantidade de registros...


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quinta-feira, 13 de novembro de 2014 13:42
  • Então, para cada grupo temos tabelas e informações de 10 anos. Dentre cada anos temos 10 tabelas com 1000 registros cada ou seja 10000 registros por ano, e consequentemente 100000 registros por grupo.

    Temos aproximadamente: 50 grupos diferentes, que daria num total aproximado de 5.000.000 de registro.


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    quinta-feira, 13 de novembro de 2014 13:59
  • Então, para cada grupo temos tabelas e informações de 10 anos. Dentre cada anos temos 10 tabelas com 1000 registros cada ou seja 10000 registros por ano, e consequentemente 100000 registros por grupo.

    Temos aproximadamente: 50 grupos diferentes, que daria num total aproximado de 5.000.000 de registro.


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    Rafael,

    Pelas informações que você passou eu juntaria todos os grupos em uma única base.

    Se ficar lento, após as otimizações com índices, você teria a opção de fazer o "particionamento horizontal" das suas tabelas, aí sim você iria criar mais filegroups (pode ser feito depois, com sua base funcionando).

    Em relação a quantidade de registros 5 milhões é pouco para o SQL Server, você não vai ter problemas não.


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote


    • Editado Tulio Rosa quinta-feira, 13 de novembro de 2014 16:47
    quinta-feira, 13 de novembro de 2014 16:39
  • Rafael,

    Seguindo esta sua linha de raciocínio, eu analisaria a possibilidade de trabalhar com Filegroups, onde cada grupo poderia ser um arquivo separado, criando uma estrutura particionada por arquivos e em cada arquivo suas respectivas tabelas e dados.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 13 de novembro de 2014 18:15
  • Rafael,

    Também penso que você pode manter tudo em um único banco de dados, assim como o Túlio indicou. Nessa quantidade de registros, acredito que separar os "grupos" de tabelas em FILEGROUP's (fisico) e através de schemas (lógico) poderá ser uma boa alternativa para manipular os dados facilmente pelas aplicações e também será uma forma prática para manutenção deste banco de dados.

    Pelas informações que você indicou, você está estruturando corretamente esta migração.

    Boa sorte no seu projeto!



    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"

    sexta-feira, 14 de novembro de 2014 10:45
    Moderador