View a markdown version of this page

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 DB Multi-AZ o un cluster DB di RDS per PostgreSQL che utilizza RDS Optimized Reads può ottenere un'elaborazione delle query fino al 50% più veloce rispetto a un'istanza che non la 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. NVMe-based Per le specifiche hardware che indicano quali istanze utilizzano NVMe, consultare Specifiche hardware per le classi di istanze DB .

Quando si utilizza un'istanza DB Multi-AZ o un cluster DB di RDS for PostgreSQL con RDS Optimized Reads attivato, si ottengono prestazioni di query fino al 50% più veloci utilizzando lo storage a livello di blocco SSD (Solid State Drive) basato su unità SSD (Solid State Drive) Non-Volatile locale. È 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)

rds_temp_tablespace è una tablespace configurata da RDS che punta allo spazio di archiviazione locale NVMe. Puoi sempre tornare allo storage Amazon EBS modificando questo parametro Parameter group utilizzando il punto Console di gestione AWS to su qualsiasi tablespace diversa da. rds_temp_tablespace Per ulteriori informazioni, consulta Modifica dei parametri in un gruppo di parametri database in Amazon RDS. È 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 con espressioni di tabella comuni (CTE), tabelle derivate e operazioni di raggruppamento.

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

  • On-demand o query di reporting 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.

  • Operazioni CREATE INDEX o REINDEX per l’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 metrica. CloudWatch FreeLocalStorage Se l'instance store sta raggiungendo il limite a causa del carico di lavoro sull'istanza DB o sul cluster Multi-AZ DB, modificalo per utilizzare una classe di istanze DB 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 su NVMe in una distribuzione di istanze DB, un'istanza DB Multi-AZ o Single-AZ una distribuzione di cluster DB Multi-AZ , l'istanza DB utilizza automaticamente RDS Optimized Reads.

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

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

RDS Optimized Reads è disponibile Regioni AWS ovunque siano supportate una o più classi di istanze DB con storage SSD NVMe locale. 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 database Amazon RDS.

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 dello spazio di 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, consulta Gestione 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.