

# PERF03-BP04 Implementar estratégias para melhorar a performance da consulta no datastore
<a name="perf_data_implement_strategies_to_improve_query_performance"></a>

 Implemente estratégias para otimizar os dados e melhorar a consulta de dados a fim de permitir mais escalabilidade e performance eficiente para a workload. 

 **Práticas comuns que devem ser evitadas:** 
+  Você não particiona dados no datastore. 
+  Você armazena dados em apenas um formato de arquivo no datastore. 
+  Você não usa índices no datastore. 

 **Benefícios de implementar esta prática recomendada:** a otimização da performance dos dados e das consultas ocasiona mais eficiência, menor custo e melhor experiência do usuário. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

A otimização de dados e o ajuste de consultas são aspectos essenciais da eficiência de performance em um datastore, pois afetam não só a performance, mas também a capacidade de resposta de toda a workload na nuvem. Consultas não otimizadas podem ocasionar maior uso de recursos e gargalos, o que reduz a eficiência geral de um datastore. 

A otimização de dados inclui várias técnicas para garantir o armazenamento e o acesso eficientes aos dados. Esse processo também ajuda a melhorar a performance da consulta em um datastore. As principais estratégias incluem particionamento, compactação e desnormalização de dados, o que ajuda a otimizá-los para armazenamento e acesso.

### Etapas de implementação
<a name="implementation-steps"></a>
+  Entenda e analise as consultas de dados críticos que são realizadas no datastore. 
+  Identifique as consultas com execução lenta no datastore e use planos de consulta para entender o estado atual delas. 
  +  [Analisar o plano de consulta no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c-analyzing-the-query-plan.html) 
  +  [Usar EXPLAIN e EXPLAIN ANALYZE no Athena](https://docs.aws.amazon.com/athena/latest/ug/athena-explain-statement.html) 
+  Implemente estratégias para melhorar a performance da consulta. Algumas das principais estratégias incluem: 
  +  Usar um [formato de arquivo colunar](https://docs.aws.amazon.com/athena/latest/ug/columnar-storage.html) (como Parquet ou ORC). 
  + Compactar os dados no datastore para reduzir o espaço de armazenamento e as operações de E/S.
  +  Particionar os dados para dividi-los em partes menores e reduzir o tempo de verificação dos dados. 
    + [Particionamento de dados no Athena](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)
    + [Partições e distribuição de dados](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html)
  +  Indexação de dados nas colunas comuns na consulta. 
  +  Use visões materializadas para consultas frequentes. 
    + [Entender as visões materializadas](https://docs.aws.amazon.com/prescriptive-guidance/latest/materialized-views-redshift/understanding-materialized-views.html)
    + [Criar visões materializadas no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html)
  +  Escolha a operação de junção correta para consulta. Ao unir duas tabelas, especifique a tabela maior no lado esquerdo da junção e a tabela menor no lado direito. 
  +  Solução de cache distribuído para melhorar a latência e reduzir o número de operações de E/S do banco de dados. 
  +  Manutenção regular, como [aspiração](https://docs.aws.amazon.com/prescriptive-guidance/latest/postgresql-maintenance-rds-aurora/autovacuum.html), reindexação e [estatísticas de execução](https://docs.aws.amazon.com/redshift/latest/dg/t_Analyzing_tables.html). 
+  Experimente e teste estratégias em um ambiente de não produção. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Práticas recomendadas do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Performance do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [As 10 melhores dicas de performance para Amazon Athena](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Cache de banco de dados da AWS](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Práticas recomendadas para implementar o Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 
+  [Particionamento de dados no Athena](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) 

 **Vídeos relacionados:** 
+ [AWS re:Invent 2023: Práticas recomendadas de otimização de custos de armazenamento na AWS](https://www.youtube.com/watch?v=8LVKNHcA6RY)
+ [AWS re:Invent 2022: Monitoramento de performance com o Amazon RDS e o Aurora, com destaque para Autodesk](https://www.youtube.com/watch?v=wokRbwK4YLo)
+  [Otimizar consultas do Amazon Athena com novas ferramentas de análise de consultas](https://www.youtube.com/watch?v=7JUyTqglmNU&ab_channel=AmazonWebServices) 

 **Exemplos relacionados:** 
+ [AWS Workshop de bancos de dados com propósito específico na ](https://catalog.us-east-1.prod.workshops.aws/workshops/93f64257-52be-4c12-a95b-c0a1ff3b7e2b/en-US)