none
Base com grande volume de dados RRS feed

  • Pergunta

  • Minha empresa representa um software que se baseia no SQL Server. O cliente utiliza o 2005 SE.
    O cliente pretende carregar a base com cerca de 400 milhões de registros (cerca de 1,5 TB de dados).
    Ao final da carga, a tabela principal do sistema deve ter aproximadamente 150 milhões de registros, mas só é acessada através da PK.
    Ele está preocupado com a capacidade de gerenciamento do SQL Server sobre este volume de dados e também com a performance.
    As queries são montadas dinamicamente pelo software, e podem incluir argumentos de pesquisa utilizando parte de campos varchar (like %.....%).
    Não temos outro cliente com estas características, logo não temos parâmetros.
    Alguém poderia fazer uma avaliação deste quadro de forma a me ajudar a responder ao cliente.
    Considere um máquina servidora dedicada ao software com 2 processadores Xeon Quad de 3.0 GHz, 32 GB de RAM rodando Windows 2003 x86 e apenas quatro usuários concorrentes.
    segunda-feira, 4 de janeiro de 2010 17:14

Respostas

  • Com certeza Júnior!

    Más práticas em programação são um terror onde trabalho atualmente, pois como a necessidade das fábricas de software são atender ao negócio, jogam tudo na produção sem o mínimo de cautela por terem seus prazos estourados, aí quando vemos são as reclamações. Aí já viu, chegam logo 3 ou 4 pessoas na sua mesa para que possa dizer "o que está acontecendo", é realmente frustrante.

    Há pouco tempo atrás outro dba daqui teve que fazer uma documentação contemplando problemas, e propostas de soluções para um software que é de uma empresa terceira, isto após vários meses de rotinas estourando o horário limite, então decidiram fazer isto.

    Imagine só, uma empresa que cobra milhões por um software, só tiveram o trabalho de avaliar as propostas e homologá-las, ou seja, foi muito tempo e gastos (pessoais e de impactos no negócio).

    Acho que tudo isso também ocorre por ser um órgão público, empresa privada de grande porte é outra coisa (eu acho).

    O importante é que pelo que vi o Costa queria que alguém assegurasse o bom funcionamento do software no sql server com aquela máquina, então pensei, "mas quem foi que desenvolveu esse trem??? ", então me senti na obrigação de alertá-lo para possíveis dores de cabeça, por ser o intermediário desse negócio.

    acho que terminei ficando traumatizado...hehe

    Abraços!
    ANDRÉ ROCHA
    • Marcado como Resposta LF.Costa terça-feira, 5 de janeiro de 2010 18:37
    terça-feira, 5 de janeiro de 2010 10:23

Todas as Respostas

  • Olá Costa,

    Bem, diante do que foi dito, vejo que há pouco que se possa assegurar, pois apesar de você ter descrito alguns "perigos", algo mais concreto deverá ser feito, como por exemplo coleta de atividade do servidor e traces, em teste de stress, para que desta forma, se possa fazer o tuning correto.

    Creio que não poderás fugir disto, porém lembre de primeiramente fazer um tuning básico, com particionamento de arquivos do tempdb, corretas configurações de memória e etc, e se possível particionar esta tabela citada como maior, como também rever o sistema de discos e seu nível de RAID.

    Tente conseguir uma homologação, só desta maneira não colocará seu nome em jogo.

    Abraços.

    ANDRÉ ROCHA
    segunda-feira, 4 de janeiro de 2010 17:29
  • Quanto a questão de gerenciamento pelo SQL Server sem problemas. O que você precisa é através do Profiler analisar as consultas que são feitas na base de dados e a partir daí, caso seja necessário, solicitar ao fabricante do software algumas melhorias em relação as consultas que são criadas.




    Espero ter ajudado
    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    segunda-feira, 4 de janeiro de 2010 18:13
  • Anderson,

    Concordo com você!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 4 de janeiro de 2010 18:44
    Moderador
  • Júnior,

    É interessante observar que o Costa é representante de um software, o qual não foi homologado para o porte do cliente que irá adquirí-lo.

    Jogar alguém no mar para ver se nada, não é interessante. Não sabemos as métricas do cliente, tão pouco a disponibilidade do fabricante adequar o software (consultas) ao mesmo.

    abraços.
    ANDRÉ ROCHA
    segunda-feira, 4 de janeiro de 2010 18:51
  • Por isso que a solução é a análise do Profiler para chegar as conclusões, e a partir dai entrar em contato com o fabricante. No caso apresentado as "métricas" não são importantes, afinal, independente do porte a aplicação irá gerar as mesmas consultas. Não vejo outra alternativa que não seja esta.



    Abraço
    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    segunda-feira, 4 de janeiro de 2010 19:20
  • Pessoal, Obrigado pela contribuição. Para esclarecimento, o software tem algumas tabelas de controle, porém ao usuário é permitida a criação de entidades e relacionamentos. Ele é largamente utilizado em todo o mundo, porém não tenho notícia de base de dados com tal volume de dados, daí o questionamento. Agora estou tranquilo em relação à eficiência do SQL Server, resta agora analisar as consultas que serão realizadas. Vale frisar que estas são especificadas pelo usuário em cima das tabelas por ele criadas. A idéia da homologação é interessante. Abraço a todos.
    segunda-feira, 4 de janeiro de 2010 19:38
  • Boa noite Costa,

    Pois é, se sua questão era somente saber se o SQL Server 2005 "aguenta" tabelas daquele tamanho, não deve se preocupar, o problema poderia ser mais o espaço em disco. Aqui você poderá ver os limites e ter uma noção melhor da robustez do SGBD:

    http://msdn.microsoft.com/en-us/library/ms143432%28SQL.90%29.aspx

    Porém como você mencionou representar um software que até então não havia sido utilizado na escala deste novo cliente, pedindo para uma breve avaliação do cenário para poder responder algo ao mesmo, realmente sugiro que não tome para si nenhuma responsabilidade no que diz respeito ao desempenho do software sem a devida homologação com testes de stress no mesmo ambiente e porte similar ao do cliente, seja com ferramentas de terceiros ou com o bom RML Utilities.

    Tão pouco deves achar que o cliente poderá iniciar o uso para depois você prover suporte fazendo as devidas análises já em produção. Falo isto por ter oportunidade de ver sistemas e consultas que funcionam bem com 100.000 registros em ambiente de desenvolvimento e ficam quase impossíveis de se utilizar ao entrarem em produção envolvendo apenas 7 ou 8 milhões de registros.

    Enfim, como deves saber, quando se envolve dinheiro e "nome", tudo deve ser analisado com muito cuidado para a satisfação do cliente.

    Sucesso amigo!

    ANDRÉ ROCHA
    segunda-feira, 4 de janeiro de 2010 23:09
  • André,

    Sua observação é valiosa, mas também temos que destacar que não adianta o banco de dados suportar este volume se as aplicação que fazem acesso aos dados estão mal desenvolvidas, algo tipo um simples Select * from Tabela!!!

    Com certeza utilizar Like em tabelas com um volume grande como este não será indicado, o que poderíamos pensar em trabalhar com Full-Text Search, além disso utilizar técnicas de particionamento de tabelas para ganho de performance, não que o particionamento represente realmente ganho mais é uma alternativa.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 4 de janeiro de 2010 23:58
    Moderador
  • Com certeza Júnior!

    Más práticas em programação são um terror onde trabalho atualmente, pois como a necessidade das fábricas de software são atender ao negócio, jogam tudo na produção sem o mínimo de cautela por terem seus prazos estourados, aí quando vemos são as reclamações. Aí já viu, chegam logo 3 ou 4 pessoas na sua mesa para que possa dizer "o que está acontecendo", é realmente frustrante.

    Há pouco tempo atrás outro dba daqui teve que fazer uma documentação contemplando problemas, e propostas de soluções para um software que é de uma empresa terceira, isto após vários meses de rotinas estourando o horário limite, então decidiram fazer isto.

    Imagine só, uma empresa que cobra milhões por um software, só tiveram o trabalho de avaliar as propostas e homologá-las, ou seja, foi muito tempo e gastos (pessoais e de impactos no negócio).

    Acho que tudo isso também ocorre por ser um órgão público, empresa privada de grande porte é outra coisa (eu acho).

    O importante é que pelo que vi o Costa queria que alguém assegurasse o bom funcionamento do software no sql server com aquela máquina, então pensei, "mas quem foi que desenvolveu esse trem??? ", então me senti na obrigação de alertá-lo para possíveis dores de cabeça, por ser o intermediário desse negócio.

    acho que terminei ficando traumatizado...hehe

    Abraços!
    ANDRÉ ROCHA
    • Marcado como Resposta LF.Costa terça-feira, 5 de janeiro de 2010 18:37
    terça-feira, 5 de janeiro de 2010 10:23