

# PERF03-BP04 Implementazione di strategie per migliorare le prestazioni delle query nel datastore
<a name="perf_data_implement_strategies_to_improve_query_performance"></a>

 Implementa le strategie per ottimizzare i dati e migliorare le query sui dati in modo da consentire una maggiore scalabilità e prestazioni più efficienti per il tuo carico di lavoro. 

 **Anti-pattern comuni:** 
+  Non suddividi i dati in partizioni nel tuo datastore. 
+  I dati vengono archiviati in un solo formato di file nel tuo datastore. 
+  Non usi gli indici nel tuo datastore. 

 **Vantaggi dell'adozione di questa best practice:** l'ottimizzazione delle prestazioni dei dati e delle query si traduce in maggiore efficienza, costi inferiori e migliore esperienza utente. 

 **Livello di rischio associato se questa best practice non fosse adottata:** medio 

## Guida all’implementazione
<a name="implementation-guidance"></a>

L'ottimizzazione di dati e query è un aspetto critico dell'efficienza delle prestazioni in un datastore, poiché influisce sulle prestazioni e sulla reattività dell'intero carico di lavoro cloud. Le query non ottimizzate possono comportare un maggiore utilizzo delle risorse e rallentamenti, riducendo così l'efficienza complessiva di un datastore. 

L'ottimizzazione dei dati include diverse tecniche per garantire prestazioni efficienti per l'archiviazione di dati e il relativo accesso. Ciò aiuta anche a migliorare le prestazioni delle query in un datastore. Le strategie chiave includono il partizionamento, la compressione e la denormalizzazione dei dati, che contribuiscono a ottimizzare i dati sia per l'archiviazione che per l'accesso.

### Passaggi dell'implementazione
<a name="implementation-steps"></a>
+  Esamina e analizza le query sui dati critiche che vengono eseguite nel tuo datastore. 
+  Individua le query lente del tuo datastore e utilizza i piani di query per comprenderne lo stato attuale. 
  +  [Analisi del piano di query in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c-analyzing-the-query-plan.html) 
  +  [Using EXPLAIN and EXPLAIN ANALYZE in Athena](https://docs.aws.amazon.com/athena/latest/ug/athena-explain-statement.html) 
+  Implementa le strategie per migliorare le prestazioni delle query. Ecco alcune strategie chiave: 
  +  Utilizzo di un [formato di file colonnare](https://docs.aws.amazon.com/athena/latest/ug/columnar-storage.html) (come Parquet o ORC). 
  + Compressione dei dati nel datastore per ridurre lo spazio di archiviazione e il funzionamento di I/O.
  +  Partizionamento dei dati per suddividere i dati in parti più piccole e ridurre i tempi di analisi dei dati. 
    + [ Partizionamento dei dati in Athena ](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)
    + [ Partitions and data distribution ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html)
  +  Indicizzazione dei dati sulle colonne comuni della query. 
  +  Uso delle viste materializzate per le domande frequenti. 
    + [ Understanding materialized views ](https://docs.aws.amazon.com/prescriptive-guidance/latest/materialized-views-redshift/understanding-materialized-views.html)
    + [ Creating materialized views in Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html)
  +  Scelta dell'operazione di unione corretta per la query. Quando unisci due tabelle, specifica la tabella più grande sul lato sinistro dell'unione e la tabella più piccola sul lato destro. 
  +  Miglioramento della latenza e riduzione del numero di operazioni di I/O del database grazie alla soluzione di cache distribuita. 
  +  Manutenzione regolare, ad esempio [vacuum](https://docs.aws.amazon.com/prescriptive-guidance/latest/postgresql-maintenance-rds-aurora/autovacuum.html), reindicizzazione ed [esecuzione di statistiche](https://docs.aws.amazon.com/redshift/latest/dg/t_Analyzing_tables.html). 
+  La sperimentazione e i test delle strategie in un ambiente non di produzione. 

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

 **Documenti correlati:** 
+  [Best practice di Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Prestazioni di Amazon RedShift ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena top 10 performance tips](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [AWS Database Caching ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Best practice per l'implementazione di Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 
+  [Partizionamento dei dati in Athena](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) 

 **Video correlati:** 
+ [AWS re:Invent 2023 - AWS storage cost-optimization best practices ](https://www.youtube.com/watch?v=8LVKNHcA6RY)
+ [AWS re:Invent 2022 - Performance monitoring with Amazon RDS and Aurora, featuring Autodesk ](https://www.youtube.com/watch?v=wokRbwK4YLo)
+  [Optimize Amazon Athena Queries with New Query Analysis Tools ](https://www.youtube.com/watch?v=7JUyTqglmNU&ab_channel=AmazonWebServices) 

 **Esempi correlati:** 
+ [AWS Purpose Built Databases Workshop ](https://catalog.us-east-1.prod.workshops.aws/workshops/93f64257-52be-4c12-a95b-c0a1ff3b7e2b/en-US)