
Sou consultor de TI e assumo projetos para meus clientes de configuração de infraestrutura completa de TI. Tenho um cliente que está enfrentando problema com seu BANCO DE DADOS, ele é distribuidor varejista de alimentos e tem um banco de dados de 10GB, o servidor é um processador IBM x3100 M4 Xeon Quad Core de 8 MB de cache, com 16 GB de Ram e 300 GB SAS, o sistema operacional é o Windows Server 2008 Enterprise, com padrão sql server 2005. O cliente reclama que todo o processo de cobrança e demais atividades no BANCO DE DADOS é muito lento. Quando verifico o monitor de recursos no servidor 2008, posso ver que o processo sqlserver está atingindo 70 a 80% a cada poucos segundos, o uso da memória está em 50 a 60% e o uso do disco varia entre 1 a 10 Mbps.
Alguma ideia de onde pode estar o problema.
Responder1
Se o banco de dados for muito lento para responder às consultas, o servidor de banco de dados está subprovisionado (talvez você deva considerar a configuração de um cluster) ou as consultas enviadas a ele foram mal projetadas e executadas lentamente. Obviamente estes são problemas aditivos.
Dados os números que você definiu, pode não ser uma má ideia adicionar servidores de banco de dados adicionais ou atualizar significativamente o que você possui. Embora eu não tenha ideia de como é a largura de banda do seu disco, é bem possível que esteja lento devido ao acesso ao disco; há coisas que você pode fazer para atualizar a velocidade disso, como usar uma SAN conectada por canal de fibra, ou discos melhores ou um nível de RAID diferente, mas quando os discos são o problema, geralmente não é uma má ideia adicionar servidores de banco de dados adicionais (apoiados por discos diferentes).
Se possível, considere observar as consultas que estão sendo feitas no banco de dados e otimizá-las para que criem menos tabelas temporárias ou tabelas temporárias menores. Por exemplo, seleções e projeções (instruções SELECT) sempre devem acontecer antes de junções e classificações.