Usuário com melhor resposta
SQL 2008 Lento em tudo! (do nada)

Pergunta
-
Olá,
Estou com problema no SQL. Ele do nada ficou lento e não tem resolvido as consultas com a performance que possuia.
Não foi feito nenhuma alteração em termos da quantidade de usuários, ou de hardware.
Por onde devo começar a investigação do que está acontecendo?
Encontrei o código abaixo na WEB e não sei se funcionará no meu caso.
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERSJá rodo dia-a-dia (na madrugada) o updatestatistcs e reindex.
O que devo fazer?
Valeu!!!
Respostas
-
Boa noite, Pablicio.
Antes de mais nada, sou novo em SQL e atualmente estou estudando.
--
Faz um teste com os códigos citados, os mesmos tem como função em remover os buffers do SQL SERVER.
Já verificou como estão seus indexes? Grande maioria das vezes as consultas ficam mais lentas por falta de indexes, talvez, este pode ser o problema.
Abs,
Rafael Marvila
- Editado Rafael Marvila sexta-feira, 13 de dezembro de 2013 01:47
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:27
-
Bom dia Pablicio,
Nesse link tem alguns procedimentos para investigação de performance do SQL, creio que seja util: http://blogs.msdn.com/b/anthonybloesch/archive/2012/12/07/sql-server-performance-investigation.aspx
Outra coisa, você pode utilizar o Performance Dashboard Reports para monitorar o que pode estar ocorrendo:
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Sugerido como Resposta Edinaldo Junior terça-feira, 17 de dezembro de 2013 14:31
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:27
-
Bom dia,
Com relação aos comandos DBCC FREEPROCCACHE e DBCC DROPCLEANBUFFERS não acredito ser uma boa ideia usá-los, pois eles tem a função de limpar o buffer, uso do buffer é muito importante para ter performance, o sqlserver armazena nele o que está sendo realizado e quando tem uma requisição primeiro olha no buffer, diminuindo o acesso a disco que é mais lento, limpando o buffer o sqlserver vai colocar tudo lá de novo e as requisições que serão feitas que poderiam estar em memória terão que ser buscadas no disco. Quanto a performance revise as configurações do seu servidor. Monitore a atividade usando o activity monitor, capture as querys que usam mais processamento e veja como estão os índices dessas consultas.
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:27
-
Você já verificou se em algum momento do dia não existe nenhum job agendado rodando alguma rotina pesada? Como você disse que fica bom e de repente fica ruim pode ter algum procedimento que está causando isso, ou até mesmo uma query ou uma atualização em lote.
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
Boa noite,
Não utilize esses comandos DBCC em produção(Você vai limpar todo o Buffer Pool do SQL Server), eles são bom para verificamos planos de execuções em banco de dados de teste, e outros problemas de performance.
Não sei se há muitas transações no servidor, mas acredito que você pode mesclar o resultado do SQL Server Profile com Perfmon, para determinar qual query está pesando o servidor, pode ser uma query pesando, ou varias, executando simultaneamente.
Jefferson Santos [MCTS SQL Server]
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
Olá,
- Seu ambiente é físico ou virtual?
- Você já verificou a fila de disco do seu servidor?
- Verificou se foi aplicado algum patch no Windows ou mesmo no SQL?
- De uma olhada nesse link e veja se pode ajudar http://www.brentozar.com/archive/2012/08/sql-server-index-fragmentation/
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Sugerido como Resposta Edinaldo Junior terça-feira, 17 de dezembro de 2013 14:31
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
Você pode usar o Perfmon (Performance Monitor) que vem com o Windows... Veja o contador Logical Disk: Avg Disk Sec/Writes, Avg Disk Sec/ Reads... um valor médio de 0,008 pode ser considerado normal...
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
Nesta página, encontrará uma Store Procedure interessante, onde demonstra diversos dados sobre o que esta sendo usado, quem esta usando, e quanto está usando:
Após criar a Store Procedure, basta rodar:
SP_WHOISACTIVE
http://sqlblog.com/blogs/adam_machanic/archive/tags/who+is+active/default.aspx
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
Todas as Respostas
-
Boa noite, Pablicio.
Antes de mais nada, sou novo em SQL e atualmente estou estudando.
--
Faz um teste com os códigos citados, os mesmos tem como função em remover os buffers do SQL SERVER.
Já verificou como estão seus indexes? Grande maioria das vezes as consultas ficam mais lentas por falta de indexes, talvez, este pode ser o problema.
Abs,
Rafael Marvila
- Editado Rafael Marvila sexta-feira, 13 de dezembro de 2013 01:47
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:27
-
Olá Rafael, obrigado pelo retorno.
Então, os índices e estatísticas estão sendo refeitos todas as madrugadas e já revisamos os índices que precisamos e aparentemente está tudo acerto neste quesito, até mesmo por que nada da estrutura do banco foi alterado, o que poderia nos levar que a alteração é que gerou a lentidão.
Quanto aos dois comando que me referi, não sei bem sobre o funcionamento dos dois, mas acredito que possa alivar um pouco, pois entendi que mesmo eu parando o serviço e voltando o buffer do SQL continua lá. Se esse comando não gerar nenhum risco, posso colocá-lo para rodar todas a noites também.
Uma outra questão que tive pesquisando é sobre plano de execução, pois utilizamos bastante SP. Daí encontrei os comandos abaixo, que parecem ajudar um pouco, mas também tenho que pesquisar melhor.
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'optimize for ad hoc workloads', 1
RECONFIGURESe conseguir ajudar mais um outo eu lhe agradeço.
Abs.
Pablicio
-
Bom dia Pablicio,
Nesse link tem alguns procedimentos para investigação de performance do SQL, creio que seja util: http://blogs.msdn.com/b/anthonybloesch/archive/2012/12/07/sql-server-performance-investigation.aspx
Outra coisa, você pode utilizar o Performance Dashboard Reports para monitorar o que pode estar ocorrendo:
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Sugerido como Resposta Edinaldo Junior terça-feira, 17 de dezembro de 2013 14:31
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:27
-
Bom dia,
Com relação aos comandos DBCC FREEPROCCACHE e DBCC DROPCLEANBUFFERS não acredito ser uma boa ideia usá-los, pois eles tem a função de limpar o buffer, uso do buffer é muito importante para ter performance, o sqlserver armazena nele o que está sendo realizado e quando tem uma requisição primeiro olha no buffer, diminuindo o acesso a disco que é mais lento, limpando o buffer o sqlserver vai colocar tudo lá de novo e as requisições que serão feitas que poderiam estar em memória terão que ser buscadas no disco. Quanto a performance revise as configurações do seu servidor. Monitore a atividade usando o activity monitor, capture as querys que usam mais processamento e veja como estão os índices dessas consultas.
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:27
-
-
Olá Wellington,
Você tem razão, é questão a ser pesquisada.
As análises estão sendo feitas e o que mais intriga, é que em determinado momento fica super bem o ambiente e depois fica lento por demais! Considerando a mesma quantidade de usuários e processos sendo executados.
-
Você já verificou se em algum momento do dia não existe nenhum job agendado rodando alguma rotina pesada? Como você disse que fica bom e de repente fica ruim pode ter algum procedimento que está causando isso, ou até mesmo uma query ou uma atualização em lote.
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
-
Boa noite,
Não utilize esses comandos DBCC em produção(Você vai limpar todo o Buffer Pool do SQL Server), eles são bom para verificamos planos de execuções em banco de dados de teste, e outros problemas de performance.
Não sei se há muitas transações no servidor, mas acredito que você pode mesclar o resultado do SQL Server Profile com Perfmon, para determinar qual query está pesando o servidor, pode ser uma query pesando, ou varias, executando simultaneamente.
Jefferson Santos [MCTS SQL Server]
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
Olá,
- Seu ambiente é físico ou virtual?
- Você já verificou a fila de disco do seu servidor?
- Verificou se foi aplicado algum patch no Windows ou mesmo no SQL?
- De uma olhada nesse link e veja se pode ajudar http://www.brentozar.com/archive/2012/08/sql-server-index-fragmentation/
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Sugerido como Resposta Edinaldo Junior terça-feira, 17 de dezembro de 2013 14:31
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
-
Você pode usar o Perfmon (Performance Monitor) que vem com o Windows... Veja o contador Logical Disk: Avg Disk Sec/Writes, Avg Disk Sec/ Reads... um valor médio de 0,008 pode ser considerado normal...
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26
-
Nesta página, encontrará uma Store Procedure interessante, onde demonstra diversos dados sobre o que esta sendo usado, quem esta usando, e quanto está usando:
Após criar a Store Procedure, basta rodar:
SP_WHOISACTIVE
http://sqlblog.com/blogs/adam_machanic/archive/tags/who+is+active/default.aspx
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:26