Prestazioni delle query migliorate per RDS per PostgreSQL con Letture ottimizzate per Amazon RDS - Amazon Relational Database Service

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à.

Prestazioni delle query migliorate per RDS per PostgreSQL con Letture ottimizzate per Amazon RDS

Puoi velocizzare l'elaborazione delle query per RDS per PostgreSQL con Letture ottimizzate per Amazon RDS. Un'istanza database o un cluster database multi-AZ RDS per PostgreSQL che utilizza Letture ottimizzate per Amazon RDS può ottenere un'elaborazione delle query fino al 50% più veloce rispetto a un'istanza database o a un cluster database che non lo utilizza.

Panoramica di Letture ottimizzate per Amazon RDS in PostgreSQL

Optimized Reads è disponibile per impostazione predefinita nelle versioni 15.2 e successive di RDS per PostgreSQL, 14.7 e successive e 13.10 e successive quando si utilizzano classi di istanze DB basate. NVMe Per le specifiche hardware che indicano le istanze utilizzate, consulta. NVMe Specifiche hardware per le classi di istanza database

Quando si utilizza un'istanza DB di RDS per PostgreSQL o un cluster DB Multi-AZ con RDS Optimized Reads attivato, si ottengono prestazioni di query fino al 50% più veloci utilizzando lo storage a livello di blocco locale basato su unità a stato solido (SSD) basate su unità a stato solido (SSD) basate su unità a stato solido (SSD). NVMe È possibile velocizzare l'elaborazione delle query posizionando le tabelle temporanee generate da PostgreSQL nello spazio di archiviazione locale, il che riduce il traffico verso Elastic Block Storage (EBS) in rete.

In PostgreSQL, gli oggetti temporanei vengono assegnati a uno spazio dei nomi temporaneo che viene eliminato automaticamente alla fine della sessione. Lo spazio dei nomi temporaneo durante l'eliminazione rimuove tutti gli oggetti dipendenti dalla sessione, inclusi gli oggetti qualificati dallo schema, come tabelle, funzioni, operatori o persino estensioni.

In RDS per PostgreSQL, il parametro temp_tablespaces è configurato per questa area di lavoro temporanea in cui sono archiviati gli oggetti temporanei.

Le seguenti query restituiscono il nome dello spazio dei nomi e la sua posizione.

postgres=> show temp_tablespaces; temp_tablespaces --------------------- rds_temp_tablespace (1 row)

Si tratta di un tablespace configurato da RDS che punta allo storage locale. rds_temp_tablespace NVMe Puoi sempre tornare allo storage Amazon EBS modificando questo parametro Parameter group utilizzando il punto AWS Management Console to su qualsiasi tablespace diversa da. rds_temp_tablespace Per ulteriori informazioni, consulta . È inoltre possibile utilizzare il comando SET per modificare il valore del parametro temp_tablespaces impostandolo su pg_default a livello di sessione utilizzando il comando SET. La modifica del parametro reindirizza l'area di lavoro temporanea su Amazon EBS. Il passaggio ad Amazon EBS è utile quando lo spazio di archiviazione locale per l'istanza o un cluster RDS non è sufficiente per eseguire una specifica operazione SQL.

postgres=> SET temp_tablespaces TO 'pg_default'; SET
postgres=> show temp_tablespaces; temp_tablespaces ------------------ pg_default

Casi d'uso per RDS Optimized Reads

Di seguito sono riportati alcuni casi d'uso che possono trarre vantaggio dalla funzionalità Letture ottimizzate per Amazon RDS:

  • Query analitiche che includono Common Table Expressions (CTEs), tabelle derivate e operazioni di raggruppamento.

  • Repliche di lettura che gestiscono le query non ottimizzate per un'applicazione.

  • Query di reporting on demand o dinamiche con operazioni complesse come GROUP BY e ORDER BY che non sempre possono utilizzare indici appropriati.

  • Altri carichi di lavoro che utilizzano tabelle temporanee interne.

  • CREATE INDEXo REINDEX operazioni di ordinamento.

Best practice per RDS Optimized Reads

Usa le seguenti best practice per RDS Optimized Reads:

  • Aggiungi la logica dei tentativi per le query di sola lettura, nel caso in cui non riescano perché l'archivio dell'istanza è completo durante l'esecuzione.

  • Monitora lo spazio di archiviazione disponibile sull'instance store con la CloudWatch metricaFreeLocalStorage. Se l'archivio dell'istanza sta raggiungendo il limite a causa del carico di lavoro dell'istanza database o sul cluster database multi-AZ, modificare l'istanza database in modo da utilizzare una classe di istanza database più grande.

Utilizzo di RDS Optimized Reads

Quando si esegue il provisioning di un'istanza DB RDS per PostgreSQL con una delle classi di istanze DB basate in una distribuzione di NVMe istanze DB Single-AZ, di un'istanza DB Multi-AZ o di un cluster DB Multi-AZ, l'istanza DB utilizza automaticamente RDS Optimized Reads.

Per ulteriori informazioni sulla distribuzione Multi-AZ, consulta. Configurazione e gestione di una distribuzione Multi-AZ per Amazon RDS

Per attivare RDS Optimized Reads, procedi in uno dei seguenti modi:

  • Crea un'istanza DB RDS per PostgreSQL o un cluster DB Multi-AZ utilizzando una delle classi di istanze DB basate. NVMe Per ulteriori informazioni, consulta Creazione di un'istanza database Amazon RDS.

  • Modifica un'istanza DB RDS for PostgreSQL esistente o un cluster DB Multi-AZ per utilizzare una delle classi di istanze DB basate. NVMe Per ulteriori informazioni, consulta Modifica di un'istanza Amazon RDS DB.

RDS Optimized Reads è disponibile Regioni AWS ovunque siano supportate una o più classi di istanze DB con archiviazione SSD locale. NVMe Per ulteriori informazioni, consulta Classi di istanze DB .

Per tornare a un'istanza senza la funzionalità Letture ottimizzate per Amazon RDS abilitata, modificare la classe dell'istanza database dell'istanza o del cluster RDS con una classe di istanza simile che supporta solo lo spazio di archiviazione EBS per i carichi di lavoro del database. Ad esempio, se la classe di istanza database corrente è db.r6gd.4xlarge, scegli db.r6g.4xlarge per tornare indietro. Per ulteriori informazioni, consulta Modifica di un'istanza Amazon RDS DB.

Monitoraggio delle istanze database che utilizzano RDS Optimized Reads

È possibile monitorare le istanze DB che utilizzano RDS Optimized Reads utilizzando le seguenti metriche: CloudWatch

  • FreeLocalStorage

  • ReadIOPSLocalStorage

  • ReadLatencyLocalStorage

  • ReadThroughputLocalStorage

  • WriteIOPSLocalStorage

  • WriteLatencyLocalStorage

  • WriteThroughputLocalStorage

Queste metriche forniscono dati sullo spazio di archiviazione dell'archivio dell'istanza, sulle operazioni IOPS e sulla velocità di trasmissione effettiva disponibili. Per ulteriori informazioni su questi parametri, consulta Parametri a CloudWatch livello di istanza Amazon per Amazon RDS.

Per monitorare l'utilizzo corrente dell'archiviazione locale, accedi al database ed esegui la seguente query:

SELECT spcname AS "Name", pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(oid)) AS "size" FROM pg_catalog.pg_tablespace WHERE spcname IN ('rds_temp_tablespace');

Per ulteriori informazioni sui file temporanei e sul loro utilizzo, vedereGestione dei file temporanei con PostgreSQL.

Limitazioni per Letture ottimizzate per Amazon RDS in PostgreSQL

Alla funzionalità Letture ottimizzate per Amazon RDS si applica la seguente limitazione:

  • Le transazioni possono non riuscire quando l'archivio dell'istanza è pieno.