SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Marcelo M. Q. Raposo
Tecnólogo pelo IFES - ES, ex UFES (JANELA!)
Desde 2006 na Móveis Simonetti.
Dev Certificado Oracle MySQL, DBA Coming soon!
Apaixonado pela vida, por desafios e pelo trabalho.
Otimista por natureza e também por opção.
Desde 2010 vive a maravilhosa aventura de ser pai
Ciclista de MTB - Atualmente fanboy Apple e Hyundai
www.marceloraposo.com.br
PERGUNTA RÁPIDA? FAÇA A QUALQUER HORA.
PERGUNTA LONGA - FINAL, OK?

MEU TELEFONE?? DESCULPE, SOU CASADO!
@mmqraposo
www.moveissimonetti.com.br
Matriz em Pinheiros
Rede varejista - 43 filiais - ES(25), BA(16) e MG(2)
Principal sistema (WEBPDV) PHP, MySQL Enterprise,
sistemas integrados com MySQL e Oracle.
Cadastre seu currículo em nosso site!
Em 2006 tínhamos 18 filiais.
Inaugurações: Itacibá(06/03), Terra Vermelha(13/03)
Shop VV(20/03), Teófilo Otoni(27/03), Guarapari.
E começa nossa história…
Aplicação
Master
Físico
Slave 1
Físico
Slave 2
Virtual
Slave 3
Virtual
Homolog
Físico
Dev -
Virtual
220Gb de Banco por
Host
Tráfego normal 4Mb/s
3mil queries por
segundo
PHP 5.6 sobre Apache
Máquina para
consultas e
relatórios
@mmqraposo
Você criou um sistema? E tudo funciona…
E AS TABELAS CRESCEM…
Até que um dia, sem muitos avisos… o SISTEMA PÁRA
Você criou um sistema? E tudo funciona…
E AS TABELAS CRESCEM…
Até que um dia, sem muitos avisos… o SISTEMA PÁRA
As perguntas do seu cliente…
Mas você disse que funcionaria.
Banco de dados?? Você não disse que
este é bom e funcionaria??
Você criou um sistema? E tudo funciona…
E AS TABELAS CRESCEM…
Até que um dia, sem muitos avisos… o SISTEMA PÁRA
Sistema torna-se lento sem aviso - SGBD leva situação até
o limite.
Não existe botão nem solução mágica.
Não resolve trocar o banco de dados.
Dificuldades em recuperar a performance rapidamente.
As perguntas do seu cliente…
Mas você disse que funcionaria.
Banco de dados?? Você não disse que
este é bom e funcionaria??
Você criou um sistema? E tudo funciona…
E AS TABELAS CRESCEM…
Até que um dia, sem muitos avisos… o SISTEMA PÁRA
Sistema torna-se lento sem aviso - SGBD leva situação até
o limite.
Não existe botão nem solução mágica.
Não resolve trocar o banco de dados.
Dificuldades em recuperar a performance rapidamente.
As perguntas do seu cliente…
Mas você disse que funcionaria.
Banco de dados?? Você não disse que
este é bom e funcionaria??
Identificar pontos de baixa performance
Recuperar sem perder regras de negócio
Não perder performance ao invés de ganhar?
Performance e Tunning no dia a dia do
desenvolvimento
Tamanho importa - pense em seus campos
Performance e Tunning no dia a dia do
desenvolvimento
Tamanho importa - pense em seus campos
Campo deve ter o menor tipo de dado
possível, que atenda a toda a sua
necessidade.
Tabela menor = Menos espaço em disco
Menos espaço em disco = Menos acesso
a disco
Arquivos de Log e Auditoria grandes
demais pesam na performance! - Disco
lembra? General LOG NÃO!
Alguns relatórios não tem jeito - Usam muito disco.
Se necessário use máquina para consulta - ou
CLUSTER
Performance e Tunning no dia a dia do
desenvolvimento
Chaves Estrangeiras e JOINs
Performance e Tunning no dia a dia do
desenvolvimento
Chaves Estrangeiras e JOINs
Chaves estrangeiras são ótimas e
necessárias, crie-as com carinho.
Performance e Tunning no dia a dia do
desenvolvimento
Chaves Estrangeiras e JOINs
Chaves estrangeiras são ótimas e
necessárias, crie-as com carinho.
JOINs, restrições de operações, evitam
registros órfãos.
Performance e Tunning no dia a dia do
desenvolvimento
Chaves Estrangeiras e JOINs
Chaves estrangeiras são ótimas e
necessárias, crie-as com carinho.
JOINs, restrições de operações, evitam
registros órfãos.
INNER JOIN, LEFT JOIN, RIGTH JOIN -
quando usar?
Performance e Tunning no dia a dia do
desenvolvimento
Chaves Estrangeiras e JOINs
Chaves estrangeiras são ótimas e
necessárias, crie-as com carinho.
Queries grandes demais e com muitos JOINS têm sua
saúde baseada nas chaves estrageiras.
JOINs, restrições de operações, evitam
registros órfãos.
INNER JOIN, LEFT JOIN, RIGTH JOIN -
quando usar?
Performance e Tunning no dia a dia do
desenvolvimento
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Pense em como irá recuperar sua
informação.
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Pense em como irá recuperar sua
informação.
Pense em índices para uso em buscas
do sistema e relatórios.
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Pense em como irá recuperar sua
informação.
Pense em índices para uso em buscas
do sistema e relatórios.
Não crie um índice para cada campo!
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Pense em como irá recuperar sua
informação.
Pense em índices para uso em buscas
do sistema e relatórios.
Não crie um índice para cada campo!
Um índice pode ter vários campos, se
for usado na ordem correta.
Performance e Tunning no dia a dia do
desenvolvimento
Recuperando informações
Pense em como irá recuperar sua
informação.
Pense em índices para uso em buscas
do sistema e relatórios.
VAMOS TESTAR!
INDEX `w1` (`data` ASC, `valor` DESC))
Não crie um índice para cada campo!
Um índice pode ter vários campos, se
for usado na ordem correta.
Performance e Tunning no dia a dia do
desenvolvimento
Performance e Tunning no dia a dia do
desenvolvimento
Objetivo - reduzir o tempo de leitura em uma tabela com
mais de 1 milhão de registros.
Performance e Tunning no dia a dia do
desenvolvimento
Objetivo - reduzir o tempo de leitura em uma tabela com
mais de 1 milhão de registros.
Definir o que buscar e como buscar. Identificar a maior
cardinalidade (??)
Performance e Tunning no dia a dia do
desenvolvimento
Objetivo - reduzir o tempo de leitura em uma tabela com
mais de 1 milhão de registros.
Definir o que buscar e como buscar. Identificar a maior
cardinalidade (??)
Criar a tabela e seus índices.
Performance e Tunning no dia a dia do
desenvolvimento
CACHE no BD - pode ser seu amigo
Performance e Tunning no dia a dia do
desenvolvimento
CACHE no BD - pode ser seu amigo
É um recurso comum em vários SGBD. inclusive
MySQL e Oracle
Performance e Tunning no dia a dia do
desenvolvimento
CACHE no BD - pode ser seu amigo
É um recurso comum em vários SGBD. inclusive
MySQL e Oracle
É chato de usar, pois nem toda query pode ser
cacheada.
Performance e Tunning no dia a dia do
desenvolvimento
CACHE no BD - pode ser seu amigo
É um recurso comum em vários SGBD. inclusive
MySQL e Oracle
É chato de usar, pois nem toda query pode ser
cacheada.
Tentar cachear TODA query pode ser ruim para a
performance
Performance e Tunning no dia a dia do
desenvolvimento
CACHE no BD - pode ser seu amigo
É um recurso comum em vários SGBD. inclusive
MySQL e Oracle
É chato de usar, pois nem toda query pode ser
cacheada.
Tentar cachear TODA query pode ser ruim para a
performance
Cache ativo, inativo ou por demanda ?
Performance e Tunning no dia a dia do
desenvolvimento
Performance e Tunning no dia a dia do
desenvolvimento
Integrar a equipe de desenvolvimento
Performance e Tunning no dia a dia do
desenvolvimento
Integrar a equipe de desenvolvimento
Uso objetivo e direto de índices
Performance e Tunning no dia a dia do
desenvolvimento
Integrar a equipe de desenvolvimento
Uso objetivo e direto de índices
Teste de queries pela equipe de desenvolvimento.
Performance e Tunning no dia a dia do
desenvolvimento
Integrar a equipe de desenvolvimento
Uso objetivo e direto de índices
Teste de queries pela equipe de desenvolvimento.
Definir padrões para uso ou não de cache.
Performance e Tunning no dia a dia do
desenvolvimento
Integrar a equipe de desenvolvimento
Uso objetivo e direto de índices
Teste de queries pela equipe de desenvolvimento.
Definir padrões para uso ou não de cache.
Definir o uso ou não de consulta na base réplica
Performance e Tunning no dia a dia do
desenvolvimento
Integrar a equipe de desenvolvimento
Uso objetivo e direto de índices
Teste de queries pela equipe de desenvolvimento.
Definir padrões para uso ou não de cache.
Definir o uso ou não de consulta na base réplica
Lembre-se: que processos em controle transacional
não estão ainda na base réplica
Dia normal
Black Friday 2014
Black Friday 2014
E-mail:
mmqraposo@gmail.com
PERGUNTAS???
Twitter
@mmqraposo
FOI UM PRAZER!
Black Friday 2014
E-mail:
mmqraposo@gmail.com
PERGUNTAS???
Twitter
@mmqraposo
marceloraposo.com.br
Estamos em:
imaster.com.br
tiespecialistas.com.br
FOI UM PRAZER!

Mais conteúdo relacionado

Semelhante a Performance e Tunning - Boas práticas em desenvolvimento

SEO em Inbound: Como planejar SEO de forma inteligente
SEO em Inbound: Como planejar SEO de forma inteligenteSEO em Inbound: Como planejar SEO de forma inteligente
SEO em Inbound: Como planejar SEO de forma inteligentesemrush_webinars
 
Fundamentos de Banco de Dados.pptx
Fundamentos de Banco de Dados.pptxFundamentos de Banco de Dados.pptx
Fundamentos de Banco de Dados.pptxNatliaGomes72
 
Reunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSCReunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSCRodrigo Dornel
 
Reunião #1 – 2015 – Overview
Reunião #1 – 2015 – OverviewReunião #1 – 2015 – Overview
Reunião #1 – 2015 – OverviewRodrigo Dornel
 
Carreira e oportunidades com a plataforma de dados da microsoft
Carreira e oportunidades com a plataforma de dados da microsoftCarreira e oportunidades com a plataforma de dados da microsoft
Carreira e oportunidades com a plataforma de dados da microsoftFabrício França Lima
 
Fabrício Lima Soluções em BD - Portifólio de Serviços
Fabrício Lima Soluções em BD - Portifólio de ServiçosFabrício Lima Soluções em BD - Portifólio de Serviços
Fabrício Lima Soluções em BD - Portifólio de ServiçosFabrício França Lima
 
Evolução cultural: Criando times de alto desempenho no Elo7
Evolução cultural: Criando times de alto desempenho no Elo7Evolução cultural: Criando times de alto desempenho no Elo7
Evolução cultural: Criando times de alto desempenho no Elo7David Robert Camargo de Campos
 
iOpera artigo o que é big data como surgiu o big data para que serve o big data
iOpera artigo o que é big data como surgiu o big data para que serve o big dataiOpera artigo o que é big data como surgiu o big data para que serve o big data
iOpera artigo o que é big data como surgiu o big data para que serve o big dataValêncio Garcia
 
Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?Dirceu Resende
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoPostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoAmbiente Livre
 
OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014Marcio Marchini
 
Evolução cultural - Criando times de alto desempenho
Evolução cultural - Criando times de alto desempenhoEvolução cultural - Criando times de alto desempenho
Evolução cultural - Criando times de alto desempenhoDavid Robert Camargo de Campos
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Taller Negócio Digitais
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Huge
 
Gerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshellGerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshellDextra
 
Como fazer-os-recrutadores-implorarem-para-te-contratar
Como fazer-os-recrutadores-implorarem-para-te-contratarComo fazer-os-recrutadores-implorarem-para-te-contratar
Como fazer-os-recrutadores-implorarem-para-te-contratarKleber Carvalho
 

Semelhante a Performance e Tunning - Boas práticas em desenvolvimento (20)

SEO em Inbound: Como planejar SEO de forma inteligente
SEO em Inbound: Como planejar SEO de forma inteligenteSEO em Inbound: Como planejar SEO de forma inteligente
SEO em Inbound: Como planejar SEO de forma inteligente
 
Fundamentos de Banco de Dados.pptx
Fundamentos de Banco de Dados.pptxFundamentos de Banco de Dados.pptx
Fundamentos de Banco de Dados.pptx
 
Reunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSCReunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSC
 
Reunião #1 – 2015 – Overview
Reunião #1 – 2015 – OverviewReunião #1 – 2015 – Overview
Reunião #1 – 2015 – Overview
 
Carreira e oportunidades com a plataforma de dados da microsoft
Carreira e oportunidades com a plataforma de dados da microsoftCarreira e oportunidades com a plataforma de dados da microsoft
Carreira e oportunidades com a plataforma de dados da microsoft
 
Fabrício Lima Soluções em BD - Portifólio de Serviços
Fabrício Lima Soluções em BD - Portifólio de ServiçosFabrício Lima Soluções em BD - Portifólio de Serviços
Fabrício Lima Soluções em BD - Portifólio de Serviços
 
Big data e a globo.com - 2017
Big data e a globo.com - 2017Big data e a globo.com - 2017
Big data e a globo.com - 2017
 
Evolução cultural: Criando times de alto desempenho no Elo7
Evolução cultural: Criando times de alto desempenho no Elo7Evolução cultural: Criando times de alto desempenho no Elo7
Evolução cultural: Criando times de alto desempenho no Elo7
 
iOpera artigo o que é big data como surgiu o big data para que serve o big data
iOpera artigo o que é big data como surgiu o big data para que serve o big dataiOpera artigo o que é big data como surgiu o big data para que serve o big data
iOpera artigo o que é big data como surgiu o big data para que serve o big data
 
Hello NoSQL World
Hello NoSQL WorldHello NoSQL World
Hello NoSQL World
 
Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoPostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
 
OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014
 
Evolução cultural - Criando times de alto desempenho
Evolução cultural - Criando times de alto desempenhoEvolução cultural - Criando times de alto desempenho
Evolução cultural - Criando times de alto desempenho
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Gerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshellGerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshell
 
Como fazer-os-recrutadores-implorarem-para-te-contratar
Como fazer-os-recrutadores-implorarem-para-te-contratarComo fazer-os-recrutadores-implorarem-para-te-contratar
Como fazer-os-recrutadores-implorarem-para-te-contratar
 

Performance e Tunning - Boas práticas em desenvolvimento

  • 1. Marcelo M. Q. Raposo Tecnólogo pelo IFES - ES, ex UFES (JANELA!) Desde 2006 na Móveis Simonetti. Dev Certificado Oracle MySQL, DBA Coming soon! Apaixonado pela vida, por desafios e pelo trabalho. Otimista por natureza e também por opção. Desde 2010 vive a maravilhosa aventura de ser pai Ciclista de MTB - Atualmente fanboy Apple e Hyundai www.marceloraposo.com.br PERGUNTA RÁPIDA? FAÇA A QUALQUER HORA. PERGUNTA LONGA - FINAL, OK?
 MEU TELEFONE?? DESCULPE, SOU CASADO! @mmqraposo
  • 2.
  • 3. www.moveissimonetti.com.br Matriz em Pinheiros Rede varejista - 43 filiais - ES(25), BA(16) e MG(2) Principal sistema (WEBPDV) PHP, MySQL Enterprise, sistemas integrados com MySQL e Oracle. Cadastre seu currículo em nosso site! Em 2006 tínhamos 18 filiais. Inaugurações: Itacibá(06/03), Terra Vermelha(13/03) Shop VV(20/03), Teófilo Otoni(27/03), Guarapari. E começa nossa história…
  • 4. Aplicação Master Físico Slave 1 Físico Slave 2 Virtual Slave 3 Virtual Homolog Físico Dev - Virtual 220Gb de Banco por Host Tráfego normal 4Mb/s 3mil queries por segundo PHP 5.6 sobre Apache Máquina para consultas e relatórios @mmqraposo
  • 5. Você criou um sistema? E tudo funciona… E AS TABELAS CRESCEM… Até que um dia, sem muitos avisos… o SISTEMA PÁRA
  • 6. Você criou um sistema? E tudo funciona… E AS TABELAS CRESCEM… Até que um dia, sem muitos avisos… o SISTEMA PÁRA As perguntas do seu cliente… Mas você disse que funcionaria. Banco de dados?? Você não disse que este é bom e funcionaria??
  • 7. Você criou um sistema? E tudo funciona… E AS TABELAS CRESCEM… Até que um dia, sem muitos avisos… o SISTEMA PÁRA Sistema torna-se lento sem aviso - SGBD leva situação até o limite. Não existe botão nem solução mágica. Não resolve trocar o banco de dados. Dificuldades em recuperar a performance rapidamente. As perguntas do seu cliente… Mas você disse que funcionaria. Banco de dados?? Você não disse que este é bom e funcionaria??
  • 8. Você criou um sistema? E tudo funciona… E AS TABELAS CRESCEM… Até que um dia, sem muitos avisos… o SISTEMA PÁRA Sistema torna-se lento sem aviso - SGBD leva situação até o limite. Não existe botão nem solução mágica. Não resolve trocar o banco de dados. Dificuldades em recuperar a performance rapidamente. As perguntas do seu cliente… Mas você disse que funcionaria. Banco de dados?? Você não disse que este é bom e funcionaria?? Identificar pontos de baixa performance Recuperar sem perder regras de negócio Não perder performance ao invés de ganhar?
  • 9. Performance e Tunning no dia a dia do desenvolvimento Tamanho importa - pense em seus campos
  • 10. Performance e Tunning no dia a dia do desenvolvimento Tamanho importa - pense em seus campos Campo deve ter o menor tipo de dado possível, que atenda a toda a sua necessidade. Tabela menor = Menos espaço em disco Menos espaço em disco = Menos acesso a disco Arquivos de Log e Auditoria grandes demais pesam na performance! - Disco lembra? General LOG NÃO! Alguns relatórios não tem jeito - Usam muito disco. Se necessário use máquina para consulta - ou CLUSTER
  • 11. Performance e Tunning no dia a dia do desenvolvimento Chaves Estrangeiras e JOINs
  • 12. Performance e Tunning no dia a dia do desenvolvimento Chaves Estrangeiras e JOINs Chaves estrangeiras são ótimas e necessárias, crie-as com carinho.
  • 13. Performance e Tunning no dia a dia do desenvolvimento Chaves Estrangeiras e JOINs Chaves estrangeiras são ótimas e necessárias, crie-as com carinho. JOINs, restrições de operações, evitam registros órfãos.
  • 14. Performance e Tunning no dia a dia do desenvolvimento Chaves Estrangeiras e JOINs Chaves estrangeiras são ótimas e necessárias, crie-as com carinho. JOINs, restrições de operações, evitam registros órfãos. INNER JOIN, LEFT JOIN, RIGTH JOIN - quando usar?
  • 15. Performance e Tunning no dia a dia do desenvolvimento Chaves Estrangeiras e JOINs Chaves estrangeiras são ótimas e necessárias, crie-as com carinho. Queries grandes demais e com muitos JOINS têm sua saúde baseada nas chaves estrageiras. JOINs, restrições de operações, evitam registros órfãos. INNER JOIN, LEFT JOIN, RIGTH JOIN - quando usar?
  • 16. Performance e Tunning no dia a dia do desenvolvimento
  • 17. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações
  • 18. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações
  • 19. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações Pense em como irá recuperar sua informação.
  • 20. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações Pense em como irá recuperar sua informação. Pense em índices para uso em buscas do sistema e relatórios.
  • 21. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações Pense em como irá recuperar sua informação. Pense em índices para uso em buscas do sistema e relatórios. Não crie um índice para cada campo!
  • 22. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações Pense em como irá recuperar sua informação. Pense em índices para uso em buscas do sistema e relatórios. Não crie um índice para cada campo! Um índice pode ter vários campos, se for usado na ordem correta.
  • 23. Performance e Tunning no dia a dia do desenvolvimento Recuperando informações Pense em como irá recuperar sua informação. Pense em índices para uso em buscas do sistema e relatórios. VAMOS TESTAR! INDEX `w1` (`data` ASC, `valor` DESC)) Não crie um índice para cada campo! Um índice pode ter vários campos, se for usado na ordem correta.
  • 24. Performance e Tunning no dia a dia do desenvolvimento
  • 25. Performance e Tunning no dia a dia do desenvolvimento Objetivo - reduzir o tempo de leitura em uma tabela com mais de 1 milhão de registros.
  • 26. Performance e Tunning no dia a dia do desenvolvimento Objetivo - reduzir o tempo de leitura em uma tabela com mais de 1 milhão de registros. Definir o que buscar e como buscar. Identificar a maior cardinalidade (??)
  • 27. Performance e Tunning no dia a dia do desenvolvimento Objetivo - reduzir o tempo de leitura em uma tabela com mais de 1 milhão de registros. Definir o que buscar e como buscar. Identificar a maior cardinalidade (??) Criar a tabela e seus índices.
  • 28. Performance e Tunning no dia a dia do desenvolvimento CACHE no BD - pode ser seu amigo
  • 29. Performance e Tunning no dia a dia do desenvolvimento CACHE no BD - pode ser seu amigo É um recurso comum em vários SGBD. inclusive MySQL e Oracle
  • 30. Performance e Tunning no dia a dia do desenvolvimento CACHE no BD - pode ser seu amigo É um recurso comum em vários SGBD. inclusive MySQL e Oracle É chato de usar, pois nem toda query pode ser cacheada.
  • 31. Performance e Tunning no dia a dia do desenvolvimento CACHE no BD - pode ser seu amigo É um recurso comum em vários SGBD. inclusive MySQL e Oracle É chato de usar, pois nem toda query pode ser cacheada. Tentar cachear TODA query pode ser ruim para a performance
  • 32. Performance e Tunning no dia a dia do desenvolvimento CACHE no BD - pode ser seu amigo É um recurso comum em vários SGBD. inclusive MySQL e Oracle É chato de usar, pois nem toda query pode ser cacheada. Tentar cachear TODA query pode ser ruim para a performance Cache ativo, inativo ou por demanda ?
  • 33. Performance e Tunning no dia a dia do desenvolvimento
  • 34. Performance e Tunning no dia a dia do desenvolvimento Integrar a equipe de desenvolvimento
  • 35. Performance e Tunning no dia a dia do desenvolvimento Integrar a equipe de desenvolvimento Uso objetivo e direto de índices
  • 36. Performance e Tunning no dia a dia do desenvolvimento Integrar a equipe de desenvolvimento Uso objetivo e direto de índices Teste de queries pela equipe de desenvolvimento.
  • 37. Performance e Tunning no dia a dia do desenvolvimento Integrar a equipe de desenvolvimento Uso objetivo e direto de índices Teste de queries pela equipe de desenvolvimento. Definir padrões para uso ou não de cache.
  • 38. Performance e Tunning no dia a dia do desenvolvimento Integrar a equipe de desenvolvimento Uso objetivo e direto de índices Teste de queries pela equipe de desenvolvimento. Definir padrões para uso ou não de cache. Definir o uso ou não de consulta na base réplica
  • 39. Performance e Tunning no dia a dia do desenvolvimento Integrar a equipe de desenvolvimento Uso objetivo e direto de índices Teste de queries pela equipe de desenvolvimento. Definir padrões para uso ou não de cache. Definir o uso ou não de consulta na base réplica Lembre-se: que processos em controle transacional não estão ainda na base réplica
  • 40.
  • 42.