Otimização de Consultas SQL em Banco de Dados MySQL

  1. Introdução SQL é uma linguagem amplamente utilizada para gerenciamento de dados em bancos de dados relacionais. Como profissional de desenvolvimento de software, é importante que você saiba como otimizar suas consultas para obter melhores resultados e desempenho. Este artigo abordará técnicas para otimização de consultas em bancos de dados MySQL.
  2. Entendendo os Custos da Consulta com Explain Explain é uma ferramenta poderosa que permite ver o que o banco de dados está fazendo internamente quando uma consulta é executada. Ele fornece informações sobre como o banco de dados está utilizando índices, quantos registros estão sendo acessados e muito mais. Isso permite identificar pontos de melhoria na consulta.
  3. Otimizando Índices das Consultas Índices são estruturas de dados que permitem que o banco de dados acesse os dados de forma mais rápida. Certifique-se de que todos os campos utilizados em cláusulas WHERE, JOIN e ORDER BY tenham índices. Além disso, é importante evitar o uso de índices duplicados e manter os índices atualizados.
  4. Trocando Subquerys por Consultas Separadas Subquerys são consultas SQL que são executadas dentro de outras consultas. Embora sejam úteis em algumas situações, elas podem ser bastante custosas em termos de desempenho. Em vez de utilizar subquerys, é melhor escrever consultas separadas e uni-las posteriormente com a cláusula UNION.
  5. Trocando Left Join por Consultas Separadas Left join é uma operação de junção que retorna todos os registros da tabela da esquerda, mesmo que não haja correspondência na tabela da direita. Embora sejam úteis em algumas situações, eles podem ser bastante custosos em termos de desempenho. Em vez de utilizar left join, é melhor escrever consultas separadas e uni-las posteriormente com a cláusula UNION.
  6. Conclusão Otimizar consultas SQL é uma tarefa importante para garantir que seu aplicativo funcione de maneira eficiente e rápida. Usando técnicas como entender os custos da consulta com Explain, otimizar índices, trocar subquerys por consultas separadas e trocar left join por consultas separadas, você pode aumentar significativamente o desempenho de suas consultas.

Requisitos para liderar equipes para OKRs bem-sucedidos

Fala-se muito sobre como as equipes devem escrever objetivos e resultados-chave (OKR), medi-los, gerenciá-los, acompanhá-los e comunicá-los às partes interessadas. Há menos discussão sobre como líderes e gerentes precisam ajustar suas formas de trabalhar para apoiar uma transição bem-sucedida para OKRs. Recentemente abordei este tema no meu blog. Nas últimas 5 semanas, analisei as principais mudanças em como liderar e gerenciar equipes de produto se você quiser mudar para o gerenciamento de resultados.

Vamos dar uma olhada rápida em cada um.

Confiar

Como líderes, uma de nossas principais responsabilidades é contratar bem. Eu vou assumir que você fez isso. Então, por que tomaríamos decisões técnicas e específicas de disciplina para as pessoas inteligentes que contratamos? Os OKRs nos ajudam a superar isso, mas não sem um reconhecimento explícito de que a prescrição detalhada não faz mais parte do seu trabalho. É o trabalho da equipe agora criar hipóteses que eles acreditam que os ajudarão a impulsionar a mudança de comportamento em seus principais resultados. É o trabalho deles testar essas hipóteses e decidir se mais investimentos são necessários ou se um pivô está em ordem. É seu trabalho confiar neles para fazer isso.

Leia o post completo aqui

Descoberta de produtos

A descoberta de produtos fornece às suas equipes um fluxo de entrada ativo de informações sobre o cliente. Dá-lhes um canal para testar ideias de forma barata. Ele pode apresentar rapidamente temas que formam a base para comportamentos que suas ferramentas de análise estão capturando. Mais importante ainda, a descoberta de produtos cria um processo de tomada de decisão baseado em evidências na maneira como suas equipes trabalham. Seu trabalho como líder é fornecer às equipes acesso e suporte ilimitados à descoberta de produtos. Executar experimentos, falar com clientes, construir protótipos, lançar testes a/b – todas essas atividades devem seguir o caminho de menor resistência.

Leia o post completo aqui

Uma cultura de aprendizado

Se as equipes temerem ser repreendidas, gritadas, menosprezadas ou até mesmo demitidas por esses tipos de conversas, a inovação e a criatividade que exigimos delas serão sufocadas. Eles sempre escolherão a opção segura, construindo a coisa menos provável de serem gritados. As equipes precisam ver que está tudo bem estar errado. Eles precisam acreditar que o que aprenderam é tão valioso quanto o que eles constroem.

Leia o post completo aqui

Afastando-se da direção de cima para baixo

Os principais resultados devem ser resultados – medidas significativas do comportamento humano que nos dizem que entregamos valor. Como líder, seu trabalho é aprovar os principais resultados de suas equipes. No entanto, se os OKRs forem bem-sucedidos, seu trabalho não será mais prescrever soluções para suas equipes. Esse é o trabalho deles. As ideias que eles apresentam precisam combinar com as estratégias de produto e de negócios, se enquadram em diretrizes de escopo razoáveis ​​e permanecem na marca (tudo o que você pode aconselhar como líder da equipe), mas ainda são da alçada da própria equipe. Você não diz mais à equipe o que fazer.

Leia o post completo aqui

Evitando listas de tarefas

Se feito corretamente, um objetivo bem escrito e uma declaração de resultados-chave não mencionam soluções de qualquer tipo. Líderes novos nessa forma de estabelecer metas ficam ansiosos. “No que a equipe está trabalhando? quando isso será feito? Que tipo de ROI devo esperar? O que devo dizer ao meu chefe? A equipe de vendas? O mercado?” Em uma tentativa de obter respostas concretas para essas perguntas, os líderes pressionarão as equipes a se comprometerem com recursos e prazos específicos. Com escopo fixo e tempo disponível, eles podem fornecer respostas a essas perguntas com confiança. As respostas serão em grande parte falsas e não se materializarão da maneira esperada, mas pelo menos terão uma resposta.

Leia o post completo aqui

O que mais você acha que é fundamental para os líderes mudarem para apoiar uma mudança para trabalhar com OKRs? Comente aqui em baixo.

Tempo passa

Agora em 2019 faz dez anos que comecei esse blog, nossa como o tempo passa!

Aprendi muito em escrever aqui, muito obrigado para quem leu, realmente espero ter ajudado como eu também fui 😀

Tem alguns posts que foram de necessidades que eu tive e no fim fazem maior sucesso aqui no blog, são eles:

  1. https://newbl0g.wordpress.com/2012/10/04/envio-de-email-via-prompt-windows-7/
  2. https://newbl0g.wordpress.com/2011/07/07/como-instalar-selenuim-em-windows/
  3. https://newbl0g.wordpress.com/2012/06/07/executar-comando-no-banco-de-dados-sqlserver-2008-express-no-visual-studio-2010/

Interessante né. Hoje em dia estou envolvido em contratações de profissionais, práticas dentro de times de desenvolvimento, processos e resultados que a tecnologia nos proporciona.

Vou escrever também mais sobre soft skills.

Bem, ótimo ano para vocês! Desejo muito aprendizado.

Framework PRISMA + Testes baseados em sessão é WOW!

Gerenciar riscos em equipes de desenvolvimento ágil, como é que faz?

Nas equipes que trabalhei até hoje, o gerenciamento de riscos é feito principalmente pelas equipes de negócios, geralmente é o Product Owner que cria lá na inception e tem pouca participação da equipe técnica. Mas agora aquela coisa que os QAs pensam: “O que é mais importante agora?” pode deixar de ser apenas pelo conhecimento empírico (que continua totalmente válido). Use PRISMA e Testes baseados em sessão, simplificando a vida e trazendo transparência para o processo de release das necessidades de negócio.

Bem, toda vez que começa os testes de uma release existe uma decisão: “Quais testes manuais precisam iniciar?”, essa pergunta mesmo que não seja feita ela é decidida. Pensando em melhorar esse processo de decisão, existe poucos passos que podem ser feitos e ter um grande ganho como:

  • saber por onde começar os testes
  • saber onde investir maior esforço
  • engajar QA, tech e negócios
  • Temos a visão clara do risco de colocar algo em produção

Para ter esses ganhos então, você vai precisar conversar com a equipe de negócios, conversar com a equipe técnica e levantar as missões mais importantes de cada risco.

Seguindo o passo a passo vai surgir alguns obstáculos, que você precisa superar, para conseguir mitigar os riscos da aplicação que está em desenvolvimento para ter cada vez melhores entregas.

Etapas de aplicação do framework PRISMA e Testes baseados em sessão:

  1. Reunião para alinhar o conhecimento sobre o PRISMA e como a equipe de tech e negócios tem a visão sobre os riscos (após teremos preenchido os riscos com probabilidade/impacto de cada)
  2. Reunião para o time desenvolver as missões para cada risco da aplicação (após teremos preenchido coluna de missão para cada risco)
  3. Agora com o time de tecnologia com o drive de a cada entrega verificar quais os riscos são importantes para a aplicação, a equipe de negócios consegue colaborar mais para que todos tenham mais confiança

A cada release teremos um grupo de riscos e ao plotar em um gráfico, teremos uma clara visão de quais pontos devem ser verificados para mitigar os riscos, conforme a imagem a baixo

 

Bem, para aplicar bem esses conceitos, sugiro estudar Testes Baseados em Sessão e seguir as recomendações bem simplificadas do framework PRISMA, é praticamente isso

Ontem 10/10/2019, fiz o evento

Testes Ágeis: Testes Baseados Em Sessão & Gerenciando Riscos Com Prisma

e sinto que vai mudar a forma como eu faço o meio campo de tech e negócios

fonte: https://www.eventbrite.com.br/e/testes-ageis-testes-baseados-em-sessao-gerenciando-riscos-com-prisma-tickets-70319717167

Aprendo muito com o Julio de Lima que foi um dos palestrantes em seu canal, vale a pena conferir que tem muito conteúdo simples e bom: https://www.youtube.com/channel/UCtyc7euU2VCFrV1WNFFOyXg

Evento Rancho DEV 2019

Hoje fui ao evento RanchoDev 2019, escrevo aqui minhas percepções e anotações.

No check-in eu acabei me esquecendo de deixar fácil o email de confirmação que tinha o código, mas mesmo assim foi super rápido. E o kit que ganhamos foi muito legal 😀 com direito a camiseta roxa linda, aquele clássico bloco de anotações e caneta da ORACLE.

rancho-dev-kit-camiseta

Evento RachoDev, apresentações

Os apresentadores das palestras foram o Ramon e Eduardo do https://devnaestrada.com.br, mandaram super bem e adorei as piadas kkk

Key note

A palestra principal foi da responsabilidade do Flavio do twitter sobre Open source ele acabou não indo e fez via vídeo conferencia … achei que o assunto foi bom, mas a forma de apresentação faltou um pouco de variar o tom e acabou ficando um pouco monótono. Sendo as principais dicas para fazer a carreira com open source é de 1. Participar como um bom usuário 2. ser um divulgador 3. contribuir mesmo que não seja com código por exemplo traduzindo ou em descrições de issues para facilitar o trabalho da equipe ou mesmo com documentação

Trilha 2

Dali eu segui para a trilha 2 e ver mais coisas de front end. Começou com TDD, uma ótima discussão a ser levantada, esse negócio de usar teste eu gosto hehe. Apresentou uma amostra de código feito com JS para validar as esferas do dragão, foi toda apresentação feita com as coisas do dragon ball.

Na sequência o Celso Henrique falou sobre micro frontends que eu achei incrível, nem tinha visto isso ainda, é pra contextos onde existem várias equipes e que precisam fazer entregas ágeis de diferentes módulos do mesmo frontend. o principal case é do spotify que fazia isso com iframes, mas hoje já existe formas de se comunicar mesmo entre diferentes aplicações usansod proxy reverse, ele demonstrou com nginx e aplicações de angular, react e vue na mesma tela rodando em containers docker.

Teve discussões muito legais sobre carreira com Carlos Mattos, Vitor Talaia, Ju Negreiros e o professor da UNISO que falaram varias perspectivas, por exemplo como começaram, como desenvolver softskills, como se atualizar, etc.

Teve palestra de ReasonML que é uma ferramenta pra programação funcional de javascript usando OCaml que traz grandes ganhos na tipagem de código JS que vai muito além do Typescript. Fiquei querendo fazer coisas !!!

Pra mim um dos destaques foi a talk do Leo Lana que falou sobre Extreme Programming e como se combina essas práticas em times rodando Scrum, eu adoro esse assunto ainda mais agora que atuo como Squad Leader e preciso incentivar o time com boas atividades diárias.

Também Talk do NuConta que Victor Manpfe falou sobre EventSource como estratégia para microserviços darem continuidade de processamento com a idempotencia das mensagens, achei muito bacana essa estrategia que não conhecia com esse nome.

Ju Negreiros voltou com a talk sobre VanillaJS para criar um jogo e como fazer modularização de javascript sem usar frameworks

Conclusão

Recomendo de mais essa conferência Rancho Dev, é um dos principais eventos da região de Sorocaba e conta com uma estrutura cada vez melhor, sendo esse a quinta edição. Adorei, nos vemos por lá: https://www.ranchodev.com.br/

🙂