none
Tabela Grande - sql server 2008 RRS feed

  • Discussão Geral

  • Olá Galera, gostaria de saber opiniões, qual o melhor procedimento que vocês acreditam ser melhor, bom vamos la,

    Eu tenho uma tabela com 90 milhões de registros, q todos dos dias são inseridos registros, porém eu tenho registros desde 2006 nela, e apenas quero deixar registros de 2012. Obs: Essa tabela fica em produção 24 horas, e quando vou deletar registros de 1 dia, demora muitos e muitos minutos, verifiquei indices, gostaria de saber sugestões,

    Obrigado desde já.....

    • Tipo Alterado Ricardo Russo quarta-feira, 30 de janeiro de 2013 13:41 Não há dúvida específica. Mais apropriado discussão.
    sexta-feira, 25 de janeiro de 2013 11:23

Todas as Respostas

  • Bom dia Beto,

    Esta tabela é particionada? Qual o critério da sua deleção?
    Também trabalho com deleção em tabelas historico (data warehouse) que possuem essa massa de dados. Eu utilizo a deleção em blocos (top 10000).

    At.
    Rafael

    sexta-feira, 25 de janeiro de 2013 13:12
  • Betovilla, Boa noite!

    Voce possui algumas abordagens que podem ser feitas sobre esta tabela.

    Mais antiga: Criar uma outra tabela de historico, e de tempos em tempos ir jogando os dados para essa tabela, caso preciso de todos os dados, crie um view ou uma função para que seja retornado todos os dados com um UNION ALL por exemplo.

    Mais nova (Melhor opção): Particionar esta tabela e deixar o gerenciamento automatico pelo SQL Server, aqui voce consegue criar indices exclusivos e sua manutenção ficará bem mais simples e rapida.

    Tabelas particionadas: http://msdn.microsoft.com/en-us/library/ms345146(v=sql.90).aspx


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    segunda-feira, 28 de janeiro de 2013 01:33
    Moderador
  • Betovilla,

    Eu particularmente vou na linha de raciocínio da segunda opção que o Fabrizzio indicou, trabalhar com o particionamento no SQL Server, tanto de forma Horizontal como Vertical. Fazendo uso dos Recursos de Particionamento de Tabelas e Arquivos de dados que forma introduzidos a partir do SQL Server 2005, onde podemos definir faixas de valores e em qual arquivo os mesmos podem ser alocados.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    segunda-feira, 28 de janeiro de 2013 17:47