SlideShare uma empresa Scribd logo
1 de 40
Estratégias para Otimização de Consultas
do Hibernate em uma Aplicação Web
Orientadores:
Prof. MSc Luiz Eduardo Guarino
Prof. MSc Leandro Guarino
Allan Silva
Heitor Bernardino
Outubro - 2014
Agenda
• Introdução e Objetivos
• Desempenho em Aplicações Web
• ORM e Hibernate
• Otimização de Consultas
• Testes e Monitoramento
• Metodologia
• Estudo de Caso
• Estratégias aplicadas e analisadas
• Resultados
• Conclusões e Trabalhos Futuros
Introdução ao Problema
• Aplicações Web e Velocidade
Introdução ao Problema
• Necessidade/Exigência dos Usuários
O que está por trás disso?
Objetivos
• Otimizar consultas de uma aplicação através
da implementação de estratégias analisadas;
• Reunir dados de desempenho para tomar
decisões de negócio que afetam o sistema;
• Melhorar a qualidade percebida pelos
usuários.
Desempenho
• Alguns indicadores:
– Tempo de Resposta (Response time),
– Carga (Load),
– Vazão (Throughput),
– Gargalo (Bottleneck)
• Tempo de Resposta: medida de
desempenho de interesse do usuário.
Onde pode estar a lentidão?
Fatores de Impacto no Desempenho
• Conteúdo;
• Software do Servidor;
• CPU, Disco, I/O ... Infraestrutura;
• Largura de banda da rede;
• Banco de Dados;
• Aplicação
– Desempenho no acesso a dados.
Persistência de Dados
• Na maioria dos casos, dados são gravados em
bancos relacionais;
• ... E desenvolvemos orientado a objetos...
Paradigmas diferentes!
ORM
• Impedância Objeto-Relacional
Hibernate
• Ferramenta para mapeamento objeto
relacional;
• Implementação da especificação de
persistência de dados em Java (JPA);
• Existem outras: EclipseLink, Open JPA,
DataNucleus etc.
Mais uma camada
Qual o custo?
Problemas Comuns
• O problema do select n + 1
–Você faz uma consulta e são executadas N
consultas em sequência;
–número de queries excessivas.
Otimização de Consultas
• Reformular consultas;
• Reduzir ou distribuir os hits ao banco de dados;
• Utilizar recursos adicionais (memória...);
• Obter o mesmo resultado;
• Tempo de resposta menor.
Testes de Desempenho
• Verificar o tempo de resposta e o rendimento
da aplicação de acordo com o resultado
esperado
Testes de Desempenho
• Tempo x Carga;
• Gargalos;
• Expectativas;
• Métricas para Medições;
• Voltado ao Ambiente e não à Funcionalidade;
• Ambiente similar ao de Produção;
• Base para otimização.
Metodologia de Testes
Monitoramento e Métricas
• "Se você não pode medir algo, você não
pode melhorá-lo“ (Lord Kelvin);
• Definição do desempenho em termos
quantitativos.
Processo de Testes + Otimização
Estudo de Caso
• Sistema de Gestão e Apoio a Processos
Execução dos Testes
Dados base para Testes
• Questionário sobre Sistema
– Demanda, Picos, Tempo de resposta ideal, etc.
• Consulta de Nota Fiscal;
• Filtros de busca mais utilizados;
• Retorno de 5 mil linhas;
• Carga de 1, 10 e 100 usuários.
Ambiente de Testes
• Servidor
– Windows 2003 Server
– 2.4Ghz Intel Xeon
– 2Gb RAM
– JDK 1.7
– Apache Tomcat 7.0.55
– PostgreSQL 9.3
• Cliente
– Windows 7
– 1.8Ghz Intel Pentium Dual Core
– 2Gb RAM
Estratégias
• HQL (Cenário base);
• Select New;
• Named Query;
• Lazy Loading;
• Criteria;
• Cache L2.
HQL (Cenário base)
Select New
Named Query
Lazy Loading
Criteria Lazy
Cache de Segundo Nível + Query Cache
Análise dos Resultados
• Transformar os dados brutos gerados em
informações significativas
1 Usuário
10 Usuários
100 Usuários
Considerações Finais
• Sempre precisamos considerar o desempenho?
• Melhor usar SQL puro do que ORM?
– DEPENDE!
• Possibilidade: Adoção de abordagens mistas;
• Não há “uma estratégia para performar tudo”;
• Objetivos alcançados
Trabalhos Futuros
• Análise com mais variáveis e estratégias;
• Outras operações;
• Plataformas móveis;
• Abordagem de OGM(Object/Grid Mapper).
Referências
• Sistema de Banco de Dados
• Java Persistence with Hibernate
• Just Hibernate
• Pro JPA 2
• The Art of Application Performance Testing
• Artigos Científicos
• Documentação das Ferramentas
Perguntas e Contribuições
Estratégias para Otimização de Consultas
do Hibernate em uma Aplicação Web
Orientadores:
Prof. MSc. Luiz Eduardo Guarino
Prof. MSc. Leandro Guarino
Allan Silva
Heitor Bernardino
Outubro - 2014

Mais conteúdo relacionado

Destaque

1520 S. Trumbull Final Pro-forma -R.M
1520 S. Trumbull Final Pro-forma -R.M1520 S. Trumbull Final Pro-forma -R.M
1520 S. Trumbull Final Pro-forma -R.MMicheal Grandieson
 
Dr. maryalice stetler stevenson all mrd
Dr. maryalice stetler stevenson   all mrdDr. maryalice stetler stevenson   all mrd
Dr. maryalice stetler stevenson all mrdHitham Esam
 
Resilient Design Management
Resilient Design ManagementResilient Design Management
Resilient Design ManagementChris Avore
 
Java Wars: Então você quer ser um Desenvolvedor?
Java Wars: Então você quer ser um Desenvolvedor?Java Wars: Então você quer ser um Desenvolvedor?
Java Wars: Então você quer ser um Desenvolvedor?Allan Silva
 
Non violencia contra as mulleres
Non violencia contra as mulleresNon violencia contra as mulleres
Non violencia contra as mulleresMarisé Roca Garcia
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Pablo Dall'Oglio
 
Resume_Rakesh_SAP MM-SRM
Resume_Rakesh_SAP MM-SRMResume_Rakesh_SAP MM-SRM
Resume_Rakesh_SAP MM-SRMRakesh Ranjan
 
A Guide to Fine Dining
A Guide to Fine DiningA Guide to Fine Dining
A Guide to Fine DiningBob Asken
 
Förpackningsdesign
FörpackningsdesignFörpackningsdesign
Förpackningsdesignsanei172
 
The Role of the Insulation System in Optimizing value in LNG Facilities
The Role of the Insulation System in Optimizing value in LNG FacilitiesThe Role of the Insulation System in Optimizing value in LNG Facilities
The Role of the Insulation System in Optimizing value in LNG FacilitiesJoe Hughes
 

Destaque (16)

1520 S. Trumbull Final Pro-forma -R.M
1520 S. Trumbull Final Pro-forma -R.M1520 S. Trumbull Final Pro-forma -R.M
1520 S. Trumbull Final Pro-forma -R.M
 
Actividad: Animales
Actividad: AnimalesActividad: Animales
Actividad: Animales
 
Dr. maryalice stetler stevenson all mrd
Dr. maryalice stetler stevenson   all mrdDr. maryalice stetler stevenson   all mrd
Dr. maryalice stetler stevenson all mrd
 
Resilient Design Management
Resilient Design ManagementResilient Design Management
Resilient Design Management
 
Java Wars: Então você quer ser um Desenvolvedor?
Java Wars: Então você quer ser um Desenvolvedor?Java Wars: Então você quer ser um Desenvolvedor?
Java Wars: Então você quer ser um Desenvolvedor?
 
Non violencia contra as mulleres
Non violencia contra as mulleresNon violencia contra as mulleres
Non violencia contra as mulleres
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
 
Resume_Rakesh_SAP MM-SRM
Resume_Rakesh_SAP MM-SRMResume_Rakesh_SAP MM-SRM
Resume_Rakesh_SAP MM-SRM
 
Semiotics final
Semiotics finalSemiotics final
Semiotics final
 
A Guide to Fine Dining
A Guide to Fine DiningA Guide to Fine Dining
A Guide to Fine Dining
 
Studio f
Studio fStudio f
Studio f
 
Förpackningsdesign
FörpackningsdesignFörpackningsdesign
Förpackningsdesign
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
 
Ansible + Hadoop
Ansible + HadoopAnsible + Hadoop
Ansible + Hadoop
 
The Role of the Insulation System in Optimizing value in LNG Facilities
The Role of the Insulation System in Optimizing value in LNG FacilitiesThe Role of the Insulation System in Optimizing value in LNG Facilities
The Role of the Insulation System in Optimizing value in LNG Facilities
 

Semelhante a Otimização de Consultas Hibernate

Otimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrialOtimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrialLabsoft - myLIMS
 
Product Inception - Thiago Serrano - 99 - Product Camp 2017
Product Inception - Thiago Serrano - 99 - Product Camp 2017Product Inception - Thiago Serrano - 99 - Product Camp 2017
Product Inception - Thiago Serrano - 99 - Product Camp 2017Product Camp Brasil
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
 
Como Implementar a Análise de Dados em Tempo Real
Como Implementar a Análise de Dados em Tempo RealComo Implementar a Análise de Dados em Tempo Real
Como Implementar a Análise de Dados em Tempo RealDenodo
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceAlex Barbosa Coqueiro
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoBeatriz Makiyama Celestino
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
Aula SGA / SGQ / SGI
Aula   SGA / SGQ / SGI Aula   SGA / SGQ / SGI
Aula SGA / SGQ / SGI fabiofm
 
5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performanceAriane Izac
 
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...Welington Monteiro
 
Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Alain Ageev, SFPC
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidademinastestingconference
 
201305 IT Simplification Lean caixa-geraldepositos
201305 IT Simplification   Lean caixa-geraldepositos201305 IT Simplification   Lean caixa-geraldepositos
201305 IT Simplification Lean caixa-geraldepositosFrancisco Calzado
 
Apresentacao_TestesSW.ppt
Apresentacao_TestesSW.pptApresentacao_TestesSW.ppt
Apresentacao_TestesSW.pptDsAsdasd1
 
Oficina de Metodologias Ágeis
Oficina de Metodologias ÁgeisOficina de Metodologias Ágeis
Oficina de Metodologias ÁgeisProfa Karen Borges
 
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptxMódulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptxgetuliodasilvasantos
 

Semelhante a Otimização de Consultas Hibernate (20)

Otimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrialOtimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrial
 
Product Inception - Thiago Serrano - 99 - Product Camp 2017
Product Inception - Thiago Serrano - 99 - Product Camp 2017Product Inception - Thiago Serrano - 99 - Product Camp 2017
Product Inception - Thiago Serrano - 99 - Product Camp 2017
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Como Implementar a Análise de Dados em Tempo Real
Como Implementar a Análise de Dados em Tempo RealComo Implementar a Análise de Dados em Tempo Real
Como Implementar a Análise de Dados em Tempo Real
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal Performance
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
Aula SGA / SGQ / SGI
Aula   SGA / SGQ / SGI Aula   SGA / SGQ / SGI
Aula SGA / SGQ / SGI
 
5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance
 
Qualidade do Software
Qualidade do SoftwareQualidade do Software
Qualidade do Software
 
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
 
Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3
 
Qualidade de Software: MPS.BR
Qualidade de Software: MPS.BRQualidade de Software: MPS.BR
Qualidade de Software: MPS.BR
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
 
201305 IT Simplification Lean caixa-geraldepositos
201305 IT Simplification   Lean caixa-geraldepositos201305 IT Simplification   Lean caixa-geraldepositos
201305 IT Simplification Lean caixa-geraldepositos
 
Apresentacao_TestesSW.ppt
Apresentacao_TestesSW.pptApresentacao_TestesSW.ppt
Apresentacao_TestesSW.ppt
 
Oficina de Metodologias Ágeis
Oficina de Metodologias ÁgeisOficina de Metodologias Ágeis
Oficina de Metodologias Ágeis
 
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptxMódulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
 

Otimização de Consultas Hibernate