Comprensione DPUs in EXPLAIN ANAL - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Comprensione DPUs in EXPLAIN ANAL

Aurora DSQL fornisce informazioni DPU (Distributed Processing Unit) a livello di dichiarazione nell'output del EXPLAIN ANALYZE VERBOSE piano, offrendoti una visibilità più approfondita sui costi delle query durante lo sviluppo. Questa sezione spiega cosa DPUs sono e come interpretarli nell'output. EXPLAIN ANALYZE VERBOSE

Che cos'è una DPU?

Un'unità di elaborazione distribuita (DPU) è la misura normalizzata del lavoro svolto da Aurora DSQL. È composta da:

  • ComputedPU: tempo impiegato per l'esecuzione di query SQL

  • ReadDPU: risorse utilizzate per leggere i dati dallo storage

  • WriteDPU: risorse utilizzate per scrivere dati nell'archivio

  • MultiRegionWriteDPU: risorse utilizzate per replicare le scritture su cluster peer in configurazioni multiregionali.

Utilizzo della DPU in EXPLAIN ANALYZE VERBOSE

Aurora DSQL si estende EXPLAIN ANALYZE VERBOSE per includere una stima dell'utilizzo della DPU a livello di dichiarazione fino alla fine dell'output. Ciò offre una visibilità immediata sui costi delle query, aiutandoti a identificare i fattori di costo del carico di lavoro, ottimizzare le prestazioni delle query e prevedere meglio l'utilizzo delle risorse.

Gli esempi seguenti mostrano come interpretare le stime della DPU a livello di dichiarazione incluse nell'output EXPLAIN ANALYZE VERBOSE.

Esempio 1: SELECT Query

EXPLAIN ANALYZE VERBOSE SELECT * FROM test_table;
QUERY PLAN
----------------------------------------------------
Index Only Scan using test_table_pkey on public.test_table  (cost=125100.05..171100.05 rows=1000000 width=36) (actual time=2.973..4.482 rows=120 loops=1)
  Output: id, context
  -> Storage Scan on test_table_pkey (cost=125100.05..171100.05 rows=1000000 width=36) (actual rows=120 loops=1)
      Projections: id, context
      -> B-Tree Scan on test_table_pkey (cost=125100.05..171100.05 rows=1000000 width=36) (actual rows=120 loops=1)
Query Identifier: qymgw1m77maoe
Planning Time: 11.415 ms
Execution Time: 4.528 ms
Statement DPU Estimate:
  Compute: 0.01607 DPU
  Read: 0.04312 DPU
  Write: 0.00000 DPU
  Total: 0.05919 DPU

In questo esempio, l'istruzione SELECT esegue una scansione solo indicizzata, quindi la maggior parte del costo proviene da Read DPU (0.04312), che rappresenta i dati recuperati dallo storage e Compute DPU (0,01607), che riflette le risorse di calcolo utilizzate per elaborare e restituire i risultati. Non esiste una DPU di scrittura poiché la query non modifica i dati. La DPU totale (0,05919) è la somma di Compute+Read+Write.

Esempio 2: INSERT Query

EXPLAIN ANALYZE VERBOSE INSERT INTO test_table VALUES (1, 'name1'), (2, 'name2'), (3, 'name3');
QUERY PLAN
----------------------------------------------------
Insert on public.test_table  (cost=0.00..0.04 rows=0 width=0) (actual time=0.055..0.056 rows=0 loops=1)
  ->  Values Scan on "*VALUES*"  (cost=0.00..0.04 rows=3 width=122) (actual time=0.003..0.008 rows=3 loops=1)
        Output: "*VALUES*".column1, "*VALUES*".column2
Query Identifier: jtkjkexhjotbo
Planning Time: 0.068 ms
Execution Time: 0.543 ms
Statement DPU Estimate:
  Compute: 0.01550 DPU
  Read: 0.00307 DPU (Transaction minimum: 0.00375)
  Write: 0.01875 DPU (Transaction minimum: 0.05000)
  Total: 0.03732 DPU

Questa istruzione esegue principalmente le scritture, quindi la maggior parte del costo è associato a Write DPU. La Compute DPU (0,01550) rappresenta il lavoro svolto per elaborare e inserire i valori. La Read DPU (0.00307) riflette le letture secondarie del sistema (per le ricerche nel catalogo o il controllo degli indici).

Notate i valori minimi delle transazioni mostrati accanto a Lettura e scrittura. DPUs Questi indicano i costi di base per transazione che si applicano solo quando l'operazione include operazioni di lettura o scrittura. Ciò non significa che ogni transazione comporti automaticamente un costo di 0,00375 DPU in lettura o 0,05 DPU in scrittura. Questi minimi vengono invece applicati a livello di transazione durante l'aggregazione dei costi e solo se all'interno della transazione vengono eseguite operazioni di lettura o scrittura. A causa di questa differenza di ambito, le stime a livello di rendiconto EXPLAIN ANALYZE VERBOSE potrebbero non corrispondere esattamente alle metriche a livello di transazione riportate nei dati di fatturazione o nei dati di fatturazione. CloudWatch

Utilizzo delle informazioni sulla DPU per l'ottimizzazione

Le stime della DPU per dichiarazione offrono un modo efficace per ottimizzare le query oltre il semplice tempo di esecuzione. Casi di utilizzo comune comprendono:

  • Consapevolezza dei costi: scopri quanto è costosa una query rispetto alle altre.

  • Ottimizzazione dello schema: confronta l'impatto degli indici o delle modifiche allo schema sulle prestazioni e sull'efficienza delle risorse.

  • Pianificazione del budget: stima del costo del carico di lavoro in base all'utilizzo della DPU osservato.

  • Confronto tra query: valuta gli approcci di interrogazione alternativi in base al consumo relativo di DPU.

Interpretazione delle informazioni sulla DPU

Tieni a mente le seguenti best practice quando utilizzi dati DPU da: EXPLAIN ANALYZE VERBOSE

  • Usalo in modo direzionale: considera la DPU segnalata come un modo per comprendere il costo relativo di una query piuttosto che come una corrispondenza esatta con le CloudWatch metriche o i dati di fatturazione. Le differenze sono previste perché EXPLAIN ANALYZE VERBOSE riporta i costi a livello di rendiconto, mentre aggrega l'attività a livello di transazione. CloudWatch CloudWatch include anche operazioni in background (come ANALYZE o compactions) e il sovraccarico delle transazioni (/) che esclude intenzionalmente. BEGIN COMMIT EXPLAIN ANALYZE VERBOSE

  • La variabilità della DPU tra le esecuzioni è normale nei sistemi distribuiti e non indica errori. Fattori come la memorizzazione nella cache, le modifiche al piano di esecuzione, la concorrenza o i cambiamenti nella distribuzione dei dati possono tutti far sì che la stessa query utilizzi risorse diverse da un'esecuzione all'altra.

  • Operazioni in batch di piccole dimensioni: se il carico di lavoro genera molte istruzioni di piccole dimensioni, valuta la possibilità di raggrupparle in batch in operazioni più grandi (non superare i 10 MB). In questo modo si riducono le spese generali di arrotondamento e si ottengono stime dei costi più significative.

  • Utilizzabile per l'ottimizzazione, non per la fatturazione: i dati in EXPLAIN ANALYZE VERBOSE ingresso della DPU sono progettati per la consapevolezza dei costi, l'ottimizzazione delle query e l'ottimizzazione. Non è una metrica adatta alla fatturazione. Affidati sempre alle CloudWatch metriche o ai rapporti di fatturazione mensili per dati autorevoli su costi e utilizzo.