none
Particionamento RRS feed

  • Pergunta

  • Boa Tarde

    Gostaria de um conselho sobre qual a melhor maneira de trabalhar com particionamento de tabelas dentro deste cenário.

    Cenário:

    Minha aplicação possuir uma tabela de controle, 90 milhões de registros, tamanho  17GB com os dados comprimidos por pagina sempre armazeno os últimos 6 meses de registros, portanto penso que não seria viável a compressão por data já que os dados são apagados freqüentemente .

    Para  efeito de teste  criei uma  função partição com base em um campo tipo de operação que poderá ser  até  4 valores (U,D,I,X) após realizado a criação função defini que o schema de particionamento será  realizado em 5 Filegroups

    Após ter criado , fui ativar a compressão dos dados, porém recebo a mensagem de erro que minha PRIMARY KEY não esta partição.

    Acredito que alguém de vocês já passaram por isto , não posso abrir mão do recurso de compactação , porém  preciso melhorar o acesso ao dados.

     

    Caso alguém tenha alguma sugestão agradeço.

    Atenciosamente

     

    Anderson Silva

    terça-feira, 12 de janeiro de 2010 16:33

Respostas

  • Anderson,

    Então se você mante sempre um período de seis meses, o que você poderia fazer é criar tabelas específicas para cada período, fazendo um particionamento em tabelas de forma horizontal.

    Em relação a sua dúvida, você esta pensando em utilizar compressão de dados existente no SQL Server 2008?

    Se for isso, eu tenho um artigo publicado no Portal DevMedia, na revista SQL Magazine edição 68, acesse, lá você vai encontrar tudo sobre compressão de dados.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    • Marcado como Resposta Anderson SP sexta-feira, 15 de janeiro de 2010 20:38
    quinta-feira, 14 de janeiro de 2010 10:59
    Moderador

Todas as Respostas

  • Boa Tarde,

    Antes de pensarmos no particionamento é preciso responder uma pergunta básica:

    - Suas consultas utilizam os critérios de particionamento nas consultas ?
    Se você particionar por data, as consultas utilizam a data na pesquisa ? Se você particionar por operação, as consultas utilizam a operação na pesquisa ?

    [ ]s,

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

    Criptografia, Autenticadores e Ataques de Inferência no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 12 de janeiro de 2010 16:39
  • Anderson,

    Eu acho muito interessante o conceito e objetivos em utilizar particionamento, mas antes de qualquer coisa, eu procurar dimensionar quais seriam as formas de acesso e que tipo de dados seriam consultados.

    Outro fator importante é determinar quais dados seriam consultados em forma de pesquisa ou filtros.

    Normalmente pensamos em criar participamentos em tabelas tendo como base períodos de data, como por exemplo, Ano, Bimestre, ou então por região.

    O que você planeja?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 12 de janeiro de 2010 22:14
    Moderador
  • Boa Tarde Junior

    Pela aplicação , o usuário pode colocar diversos filtros , um deles seria por tipo de operação , limpo sempre os dados deixando os últimos seis meses.

    Gostária de particionar para distribuir os dados em discos separados , e melhorar as consultas  que fizerem o filtro pela coluna chave de particionamento.

    Uma duvida se eu tenho uma tabela particionada só poderei usar o recurso de compressão se a coluna chave de particionamento for a primary key ?

    Como sempre Obrigado Junior.

    quarta-feira, 13 de janeiro de 2010 20:26
  • Anderson,

    Então se você mante sempre um período de seis meses, o que você poderia fazer é criar tabelas específicas para cada período, fazendo um particionamento em tabelas de forma horizontal.

    Em relação a sua dúvida, você esta pensando em utilizar compressão de dados existente no SQL Server 2008?

    Se for isso, eu tenho um artigo publicado no Portal DevMedia, na revista SQL Magazine edição 68, acesse, lá você vai encontrar tudo sobre compressão de dados.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    • Marcado como Resposta Anderson SP sexta-feira, 15 de janeiro de 2010 20:38
    quinta-feira, 14 de janeiro de 2010 10:59
    Moderador
  • Boa Tarde,

    Para que você realmente possa usufruir do particionamento é necessário que na esmagadora maioria das consultas, os usuários utilizem como critérios de pesquisa os mesmos utilizados para particionar. Não será muito útil você particionar por tipo de operação se o usuário efetuar a pesquisa por data (nesse caso o particionamento deixará a consulta mais lenta inclusive). Seria interessante se o usuário sempre passasse o tipo de operação (isso ocorre ?)

    [ ]s,

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

    Criptografia, Autenticadores e Ataques de Inferência no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 14 de janeiro de 2010 15:40
  • Maia,

    Pelo que entendi a forma de pesquisa que os usuários utilizam é através de períodos de data!!!

    Ao meu ver seria mais indicado e vantagoso realizar o particionamento por períodos em tabelas distintas.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 15 de janeiro de 2010 00:12
    Moderador
  • Anderson,

    A compressão de dados consiste em uma análise sobre as colunas e dados que estão sendo armazenados em tabelas habilitadas para trabalhar com compressão.

    A chave primária independe da compressão de dados.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 15 de janeiro de 2010 18:45
    Moderador