Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Por que minha query esta lenta? - Suellen Moraes

56 vues

Publié le

Durante os anos de experiencia percebi que grande parte dos desenvolvedores possuem dificuldade em iniciar o troubleshooting de suas queries, muitas vezes sobrecarregando o DBA em muitos dos casos com queries simples. O intuito desta palestrar é mostrar o "caminho das pedras" para despertar nos desenvolvedores a necessidade de se conhecer o funcionamento da ferramenta utilizada e visando os desenvolvimentos futuros tendo como foco o pensamento em performance do código escrito e dicas de melhores códigos.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Por que minha query esta lenta? - Suellen Moraes

  1. 1. Porque minha query está lenta? Iniciando um trobleshooting
  2. 2. Quem sou eu? Atuando no mercado com SQL Server há 10 anos. MCITP, MCSA, MCT Atualmente DBA Sql Server na MC1 Tecnologia. • Contatos: • Email: suellensm@yahoo.com.br • Facebook: suellen.moraes.794 • Linkedin: https://www.linkedin.com/in/suellen- moraes-46562138/
  3. 3. E por onde começar? • Nos ajudará a identificar o waits da query em execução, se houver, que a query está passando. Sp_whoisactive • Utilização de recursos. DMV’s Extended Events • Várias opções que nos ajudam: error and warnings, locks (deadlocks), Performance (paralelismo), scans, entre outras. Sql Server Profiler
  4. 4. Identificando o Gargalo • Indexação • Estatisticas • Plano de execução ruim • Modelagem Varios Ifs pelo caminho • Memória, CPU, Disco, etc. Hardware • SO • A propria Aplicação. • Etc. Outros
  5. 5. Estatísticas Informações computadas pelo SQL Server sobre a distribuição dos dados na(s) coluna(s) do índice. Utilizada pelo QO para analisar a seletividade e a cardinalidade dos dados, afim de criar um plano de execução que utilize a melhor “rota” e os melhores operadores para cada caso. dbcc show_statistics ([person.AddressType], AK_AddressType_Name)
  6. 6. Índices Grande aliado para performance das nossas queries. Conhecer os tipos de índices existentes e suas funcionalidades para que sua utilização seja mais efetiva. Tudo em excesso também faz mal, portanto use com moderação!! Cuidado com a fragmentação e quantidade alta de pages splits.
  7. 7. Plano de execução Analise o custo dos operadores. Operadores do tipo blocking. • Aguarda o termino da leitura de todas as linhas para que o próximo operador possa executar. • Sort, Eager Spool Operadores do tipo NonBlocking • Lê a informação, processa e retorna a linha para o próximo operador do plano. • Nested Loop, lazy spool
  8. 8. Dicas Qual o embasamento para a afirmação de que a query está lenta? Crie um baseline! E o utilize! Analise qual o tempo que esta sendo gasto no SQL em relação ao processo como um todo. Os processos da aplicação também custam. Esteja presente no momento do desenvolvimento. Ajudando o dev no início do desenvolvimento reduz bastante a probabilidade de termos problemas em prod!
  9. 9. Conclusão  Tenha um baseline SEMPRE!!  Mantenha suas estatísticas sempre atualizadas.  Realize periodicamente a manutenção dos seus índices.  Entenda como ler um plano de execução.  O problema nem sempre é o SQL Server.  Seja amiguinho do desenvolvedor (ele é seu parceiro e não seu inimigo)
  10. 10. DEMO!!!
  11. 11. Dúvidas?
  12. 12. Obrigada!

×