Banco de dados Lento

SQL Server

30/10/2013

Boa tarde!

Não conheço muito o banco de dados, pois cheguei recentemente na empresa e estou iniciando na área de BD.

Preciso saber como eu faço para descobrir o que pode estar gerando uma lentidão na aplicação, se é algo na aplicação, no banco de dados, como eu descubro e corrigo esse problema de lentidão? É possível?

O que eu posso fazer para melhorar o BD?

Obrigado!

Abs

Att.
Bruno
Bruno Brinstein

Bruno Brinstein

Curtidas 0

Respostas

Alex Lekao

Alex Lekao

30/10/2013

Ola Bruno, boa tarde!!!

O Seu SGDB é SQL Server, certo?

vc consegue verificar as caracteristicas do servidor?

Por exemplo, memoria, hd, espaco livre em hd, etc.

Dependendo do que for pode ser o espaco em hd ou simplesmente uma manutencao no banco de limpeza de arquivos, como se fosse um defrag, mas nao eh... rsrsr

esse problema de lentidao eh recorrente? sempre esteve lento? comecou a aproximadamente quanto tempo?

acredito que seria interessante alguns detalhes a mais para tentarmos lhe ajudar.

Abraco.

Alex - Lekao
GOSTEI 0
Roniere Almeida

Roniere Almeida

30/10/2013

um dos pontos importante seria saber o tamanho do banco e quanto tem de espaço, é uma das coisas.
GOSTEI 0
Bruno Brinstein

Bruno Brinstein

30/10/2013

Roniere e Alex, obrigado pela resposta no post.

Vamos lá rs

Vou citar abaixo as configurações do servidor e banco de dados.

Servidor tem 08 GB de memória;
Intel xeon 2.13 Ghz;
100 GB de espaço livre;
SQL Server 2008;
O Banco de dados tem apenas 03 GB, o tamanho total;
O log está normal com 3MB;
Todos acessam a aplicação remotamente em um servidor, que deste servidor a aplicação acessa o banco em outro servidor (Talvez aí a internet possa causa alguma lentidão, mas nada tão crítico como o que vem acontecendo, acredito eu) rs.

O que acontece é o seguinte, o pessoal utiliza uma aplicação que faz tarefas simples de inclusão e pesquisa de orçamentos, sempre quando abre a aplicação ou realiza alguma consulta ou inclusão, fica muito lento. Disseram que a aplicação costuma ser um pouco lenta mesmo, mas o desempenho piorou de uns 10 dias até hoje.

Verifiquei a performance do servidor pelo resource monitor, a única coisa que da uns picos bem elevados é o disco, o restante é tudo normal.

O que mais posso fazer para descobrir o que pode estar causando essa lentidão, pois quando verifico o sp_who2 existem em média 10 usuários conectados no banco, mas sem "dead locks"

Obrigado!

GOSTEI 0
Alex Lekao

Alex Lekao

30/10/2013

Ola Bruno, bom dia!!!

Legal.

Achei pouca memoria, mas tudo bem, pode nao ser o caso.

Se nao me engano para o SQL Server, quanto mais memoria melhor.

O Seu servidor eh bem parecido com o meu, so q o nosso tem 24 GB de ram.

Os servidores estao em locais diferentes comunicando pela internet entao?

Acredito que esse ponto possa ser um problema tambem, a comunicacao pela internet no caso.

O banco eh bem pequeno, tem bastante espaco no hd.

Acredito ser interessante dar uma verificada na aplicacao propriamente dita, se eles nao estao usando nenhum processo que possa ser mudado, ou foi criado algum job ou algum procedimento para executar alguma rotina que esteja deixando o banco lento.

Se houver a possibilidade de aumentar a memoria para testar, seria uma opcao tambem.

Abraco.

Alex - Lekao
GOSTEI 0
Bruno Brinstein

Bruno Brinstein

30/10/2013

Olá Alex, bom dia.

O servidor realmente tem pouca memória, mas para uma aplicação que mexe apenas com relatórios, nada tão pesado talvez não implique tanto, mas mesmo assim vou solicitar que aumentem para no mínimo 16 GB e fazer os testes.

Isso, eles ficam em servidores diferentes e usam a internet para se comunicar, talvez o link em um dos servidores possa ser um ponto de gargalo para essas transações, o que acha?

Testei a aplicação, o que mais fica lento é a pesquisa e quando ele utiliza uma função para recalcular valores, utilizo a ferramenta SQL HeartBeat, e o processo cresce de forma absurda que faz essas tarefas, analisei a query e é uma query gigante que faz isso, rodei direto no SQL e levou 1 minuto, na aplicação fica uns 5 minutos ou mais, isso quando não trava e temos que fechar a aplicação.

Muito Obrigado pela ajuda e pelas dicas.

Abs.

att.
Bruno
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

30/10/2013

Alex, 24 GB de memoria da pra quantos usuarios simultaneos sem lentidão?
GOSTEI 0
Roniere Almeida

Roniere Almeida

30/10/2013

o HD está de boa, mas memoria deve ser considerada, dependendo da quantidade de usuario e o que eles fazem no banco.
GOSTEI 0
Alex Lekao

Alex Lekao

30/10/2013

Alex, 24 GB de memoria da pra quantos usuarios simultaneos sem lentidão?


OI Mariana, boa tarde!!!

A pergunta ta baseada no nosso cenario? rsrsr

Por que no nosso caso temos 24 GB de ram e temos mais de 100 ususuarios trabalhando 8 a 10 horas por dia, o tempo todo, nao quis chutar a quantidade total do nosso parque, pq se nao daria 170 mais ou menos. rsrsr
GOSTEI 0
Alex Lekao

Alex Lekao

30/10/2013


O servidor realmente tem pouca memória, mas para uma aplicação que mexe apenas com relatórios, nada tão pesado talvez não implique tanto, mas mesmo assim vou solicitar que aumentem para no mínimo 16 GB e fazer os testes.


so lembrando que para o aumento de memoria tera que considerar alguns multiplos para o servidor, nao me lembro como eh feita essa mensuracao, acho que eh alguma coisa com o processador ou com os cores.


Isso, eles ficam em servidores diferentes e usam a internet para se comunicar, talvez o link em um dos servidores possa ser um ponto de gargalo para essas transações, o que acha?


ACho que eh uma possibilidade sim, vale a pena verificar, dependendo de como for, e for possivel, fecha logo um link de fibra otica. rssr


Testei a aplicação, o que mais fica lento é a pesquisa e quando ele utiliza uma função para recalcular valores, utilizo a ferramenta SQL HeartBeat, e o processo cresce de forma absurda que faz essas tarefas, analisei a query e é uma query gigante que faz isso, rodei direto no SQL e levou 1 minuto, na aplicação fica uns 5 minutos ou mais, isso quando não trava e temos que fechar a aplicação.


analise a possibiildade de criacao de indices, e reveja a query se for possivel, talvez possa ser interessante vc dar uma olhada no plano de manutencao estimado e verificar possiveis indices que ele possa indicar, ou cria-lo direto, se ver que faz uso de campos que nao tem indices e analisar que precisem.

Bom espero que possa ter ajudado.

Abraco.

Alex - Lekao
GOSTEI 0
Bruno Brinstein

Bruno Brinstein

30/10/2013

Boa tarde Alex,

Ajudou muito... Vou analisar tudo isso que debatemos aqui no DevMedia, fazer uns testes e algumas correções.

E vamos lá, vamos ver o que acontece rsrs.

Pode deixar que vou fechar um link de fibra kkkkk.


Obrigado!

Abs.
GOSTEI 0
Alex Lekao

Alex Lekao

30/10/2013

Maravilha...

precisando de mais alguma coisa eh so falar, estamos sempre por ai... rssr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

30/10/2013

Alex, 24 GB de memoria da pra quantos usuarios simultaneos sem lentidão?


OI Mariana, boa tarde!!!

A pergunta ta baseada no nosso cenario? rsrsr

Por que no nosso caso temos 24 GB de ram e temos mais de 100 ususuarios trabalhando 8 a 10 horas por dia, o tempo todo, nao quis chutar a quantidade total do nosso parque, pq se nao daria 170 mais ou menos. rsrsr


desculpa a demora, sim, neste cenario.
GOSTEI 0
Alex Lekao

Alex Lekao

30/10/2013

tem erro nao Mariana... rsrsr

mas temos um uso bem interessante... nao enfrentamos grandes problemas de lentidao, o problema acontece quase sempre qdo tem alguma consulta mais pesada, mas logo libera.

respondendo objetivamente, nao, nao temos grandes problemas com lentidao. rsrsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

30/10/2013

como seria esse "libera", seria mudança no script?
GOSTEI 0
Kallel Albuquerque

Kallel Albuquerque

30/10/2013

Olá Bruno,

Você chegou recentemente na empresa, certo?

- Estudou a aplicação (Aonde os métodos de buscas estão localizados? Quais métodos de representação de dados na aplicação?)
- Estudou e verificou a normalização do banco de dados (Projeto Lógico do MER)
- Estudou a infraestrutura (Balanceamento do servidor)

Todo esse processo foi um erro fatal da engenharia do software, não resta agora você quebrar sua cabeça, testar e encontrar infinitos erros na sua aplicação, veja os itens acima vou estudar o caso com minha equipe de trabalho e não deixe de fazer testes.

Obrigado.
GOSTEI 0
Alex Lekao

Alex Lekao

30/10/2013

como seria esse "libera", seria mudança no script?


Oi Mariana, bom dia!!!

Assis que o script termina de rodar, os recursos sao liberados, memoria, etc.
GOSTEI 0
POSTAR