Inquiridor
Análise de desempenho e dúvidas referente a infraestrutura

Pergunta
-
Ola, pessoal
Trago hoje uma questão sobre performance e hardware.
Existe uma consulta no sistema que roda rapidamente no meu computador de trabalho (em torno de 20s que vou considerar como aceitável, pelo volume de dados, que não é nada exorbitante, mas é um bd com seus 6gb),
E outra consulta que leva em torno de 6s (depois de ter aperfeiçoado ela, e criado um índice específico).
--
No ambiente do usuário, em situação de horário fora de expediente, ambas as consultas levam absurdamente mais tempo... mais de 1 min cada.
Diferenças básicas: 1. no meu PC tem ssd, e no cliente não; 2. No cliente a versão é express, no meu, developer (está configurado para usar 4gb).
A diferença parece ser gritante entre máquina com HD normal e SSD, mesmo que o ambiente do usuário tenha um hardware bem melhor, (xeon 4 nucleos, 16Gb de memoria),
porém com o hd fica extremamente demorada a consulta.
Considerando tbm que no cliente está a versão Express (SQL Server 2016), que inicialmente eu achei que poderia ser um fator significativo, porém, não sei se é, pois rodando a consulta, o uso de memória do sql server chega a 1.7Gb , no cliente (com express) e no meu pc, uns 2gb e pouco, não passa muito disso.
O que eu noto em determinados momentos do processamento da consulta, é que há uma utilização de HD muito grande, e eu acho que é este o fator determinante.
É isso, na verdade, que eu gostaria de enteder melhor. Porque há tanta necessidade de uso do HD? no meu pc, com um BD inteiro de 6Gb e o sql server utilizando até 4gb de memoria, não teria os dados já na memoria?Há alguma forma (dmv... ou outra) de saber se as consultas estão utilizando memoria e quanto; ou a consulta requer ler do hd.... o processamento da consulta.... etc?
A diferença se torna maior ainda, caso eu utilize os comandos DBCC FREEPROCCACHE e DBCC DROPCLEANBUFFERS , o que normalmente eu faço para comparação de performance entre consultas.
Isso é recomendado, ou o correto (para utilizar a memoria e considerar essas variáveis do ambiente, seria melhor executar a consulta a primeria vez, e considerar a segunda execução?)
E esses comandos tem efeitos colaterais , motivo pelo qual deveria ser evitados?
(claro, se for o caso de executar no cliente, sempre quando não há operações no sistema)** Esse assunto surgiu e veio para análise, quando o cliente relatou que enquanto tirara determinado relatório no sistema, o PDV "trancava". A principio analisei que essas consultas demoradas podem estar causando isso.
- Editado Julio Costi sexta-feira, 6 de março de 2020 12:29
Todas as Respostas
-
Deleted
- Marcado como Resposta Julio Costi sexta-feira, 6 de março de 2020 14:41
- Não Marcado como Resposta Julio Costi terça-feira, 10 de março de 2020 14:32
-
-
-
"Júlio, achei estranho que já marcou a resposta como correta, sem dar continuidade ao assunto. O problema foi resolvido somente com as indicações iniciais?"
Não não, vou dar continuidade no assunto após o horário de funcionamento diário da empresa.
Explicando: Eu achei as informações extremamente úteis, como a minha questão é bastante subjetiva, acho que esse tipo de resposta é o que se espera, vou analisar esses pontos, vou pegar o plano de execução, se conseguir coloco aqui.
Talvez não seja o correto então, qualquer coisa avisa aí, que mudo isso para as próximas.
- Editado Julio Costi sexta-feira, 6 de março de 2020 16:44
-
A versão Express do sql server possui limitações de desempenho (tamanho do BD, quantidade de cores usados). Será que isso não pode influenciar ?
Quanto ao uso de memória, apesar de na documentação falar de 1.4Gb, o processo do SQL Server estava utilizando 1.7Gb (no cliente), e no meu PC apenas um pouco a mais (2.alguma coisa Gb). Achei que não seria para esta diferença toda.
Quanto ao número de núcleos, pelo que vi tbm na documentação o Express permite utilizar 4 núcleos, não é? Nesse caso estaria utilizando todos os cores do servidor.
Pelo tamanho máximo do BD, está com 6Gb, daqui a um tempinho sim, teremos que providenciar a migração da versão no cliente.
Obrigado!
Julio C.
-