

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Meningkatkan performa kueri untuk RDS for PostgreSQL dengan Amazon RDS Optimized Reads
<a name="USER_PostgreSQL.optimizedreads"></a>

Anda dapat mencapai pemrosesan kueri yang lebih cepat untuk RDS for PostgreSQL dengan Amazon RDS Optimized Reads. RDS untuk instans PostgreSQL DB Multi-AZ atau cluster DB yang menggunakan RDS Optimized Reads dapat mencapai hingga 50% pemrosesan kueri lebih cepat dibandingkan dengan yang tidak menggunakannya.

**Topics**
+ [Ikhtisar RDS Optimized Reads di PostgreSQL](#USER_PostgreSQL.optimizedreads-overview)
+ [Kasus penggunaan untuk RDS Optimized Reads](#USER_PostgreSQL.optimizedreads-use-cases)
+ [Praktik terbaik RDS Optimized Reads](#USER_PostgreSQL.optimizedreads-best-practices)
+ [Menggunakan RDS Optimized Reads](#USER_PostgreSQL.optimizedreads-using)
+ [Memantau instans DB yang menggunakan RDS Optimized Reads](#USER_PostgreSQL.optimizedreads-monitoring)
+ [Batasan untuk RDS Optimized Reads di PostgreSQL](#USER_PostgreSQL.optimizedreads-limitations)

## Ikhtisar RDS Optimized Reads di PostgreSQL
<a name="USER_PostgreSQL.optimizedreads-overview"></a>

Bacaan yang Dioptimalkan tersedia secara default pada RDS untuk PostgreSQL versi 15.2 dan lebih tinggi, 14.7 dan lebih tinggi, dan 13.10 dan lebih tinggi saat menggunakan kelas instans DB. NVMe-based Untuk spesifikasi perangkat keras yang menunjukkan instance mana yang menggunakan NVMe, lihat. [Spesifikasi perangkat keras untuk kelas instans DB ](Concepts.DBInstanceClass.Summary.md)

Saat Anda menggunakan RDS untuk instans PostgreSQL DB Multi-AZ atau cluster DB yang mengaktifkan RDS Optimized Reads, RDS akan mencapai kinerja kueri hingga 50% lebih cepat menggunakan penyimpanan tingkat blok solid state drive (SSD) berbasis Memory Express (NVMe) Non-Volatile lokal. Anda dapat mencapai pemrosesan kueri yang lebih cepat dengan menempatkan tabel sementara yang dihasilkan oleh PostgreSQL di penyimpanan lokal, yang akan mengurangi lalu lintas ke Elastic Block Storage (EBS) melalui jaringan.

Di PostgreSQL, objek sementara ditetapkan ke namespace sementara yang menurun secara otomatis di akhir sesi. Saat menurun, namespace sementara menghapus objek apa pun yang bergantung pada sesi, termasuk objek yang memenuhi syarat skema, seperti tabel, fungsi, operator, atau bahkan ekstensi.

Di RDS for PostgreSQL, parameter `temp_tablespaces` dikonfigurasi untuk area kerja sementara ini di mana objek sementara disimpan.

Kueri berikut mengembalikan nama tablespace dan lokasinya.

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

`rds_temp_tablespace` adalah tablespace yang dikonfigurasi oleh RDS yang menunjuk ke penyimpanan lokal NVMe. Anda selalu dapat beralih kembali ke penyimpanan Amazon EBS dengan memodifikasi parameter ini dalam `Parameter group` menggunakan Konsol Manajemen AWS to point ke tablespace selain. `rds_temp_tablespace` Untuk informasi selengkapnya, lihat [](USER_WorkingWithParamGroups.Modifying.md). Anda juga dapat menggunakan perintah SET untuk memodifikasi nilai parameter `temp_tablespaces` menjadi `pg_default` di tingkat sesi menggunakan perintah SET. Memodifikasi parameter akan mengalihkan area kerja sementara ke Amazon EBS. Peralihan kembali ke Amazon EBS akan membantu ketika penyimpanan lokal untuk klaster atau instans RDS Anda tidak cukup untuk melakukan operasi SQL tertentu.

```
postgres=> SET temp_tablespaces TO 'pg_default';
SET
```

```
postgres=> show temp_tablespaces;
            
 temp_tablespaces
------------------
 pg_default
```

## Kasus penggunaan untuk RDS Optimized Reads
<a name="USER_PostgreSQL.optimizedreads-use-cases"></a>

Berikut ini adalah beberapa kasus penggunaan yang dapat memperoleh manfaat dari Optimized Reads:
+ Kueri analitis yang mencakup Ekspresi Tabel Umum (CTE), tabel turunan, dan operasi pengelompokan.
+ Replika baca yang menangani kueri yang tidak dioptimalkan untuk aplikasi.
+ On-demand atau kueri pelaporan dinamis dengan operasi kompleks seperti GROUP BY dan ORDER BY yang tidak selalu dapat menggunakan indeks yang sesuai.
+ Beban kerja lain yang menggunakan tabel sementara internal.
+ `CREATE INDEX`atau `REINDEX` operasi untuk menyortir.

## Praktik terbaik RDS Optimized Reads
<a name="USER_PostgreSQL.optimizedreads-best-practices"></a>

Gunakan praktik terbaik RDS Optimized Reads berikut:
+ Tambahkan logika coba lagi untuk kueri hanya baca jika terjadi kegagalan karena penyimpanan instans penuh selama eksekusi.
+ Pantau ruang penyimpanan yang tersedia di penyimpanan instans dengan CloudWatch metrik`FreeLocalStorage`. Jika penyimpanan instance mencapai batasnya karena beban kerja pada instans DB atau Multi-AZ cluster DB, modifikasi untuk menggunakan kelas instans DB yang lebih besar.

## Menggunakan RDS Optimized Reads
<a name="USER_PostgreSQL.optimizedreads-using"></a>

Saat Anda menyediakan RDS untuk instans PostgreSQL DB dengan salah satu kelas instans DB berbasis NVMe dalam Single-AZ penerapan instans DB, penerapan instans DB, Multi-AZ atau penerapan cluster DB Multi-AZ , instans DB secara otomatis menggunakan RDS Optimized Reads.

Untuk informasi selengkapnya tentang Multi-AZ penerapan, lihat[Mengkonfigurasi dan mengelola Multi-AZ penyebaran untuk Amazon RDS](Concepts.MultiAZ.md).

Untuk mengaktifkan RDS Optimized Reads, lakukan salah satu tindakan berikut ini:
+ Buat RDS untuk instance PostgreSQL DB Multi-AZ atau cluster DB menggunakan salah satu kelas instans DB berbasis NVMe. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Ubah RDS yang ada untuk instans PostgreSQL DB Multi-AZ atau cluster DB untuk menggunakan salah satu kelas instans DB berbasis NVMe. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

RDS Optimized Reads tersedia di semua Wilayah AWS tempat satu atau lebih kelas instans DB dengan penyimpanan SSD NVMe lokal didukung. Untuk informasi selengkapnya, lihat [ DB](Concepts.DBInstanceClass.md).

Untuk beralih kembali ke instans RDS baca yang tidak dioptimalkan, modifikasi kelas instans DB dari klaster atau instans RDS Anda menjadi kelas instans serupa yang hanya mendukung penyimpanan EBS untuk beban kerja basis data Anda. Misalnya, jika kelas instans DB saat ini adalah db.r6gd.4xlarge, pilih db.r6g.4xlarge untuk beralih kembali. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

## Memantau instans DB yang menggunakan RDS Optimized Reads
<a name="USER_PostgreSQL.optimizedreads-monitoring"></a>

Anda dapat memantau instans DB yang menggunakan Bacaan yang Dioptimalkan RDS menggunakan metrik berikut: CloudWatch
+ `FreeLocalStorage`
+ `ReadIOPSLocalStorage`
+ `ReadLatencyLocalStorage`
+ `ReadThroughputLocalStorage`
+ `WriteIOPSLocalStorage`
+ `WriteLatencyLocalStorage`
+ `WriteThroughputLocalStorage`

Metrik ini menyediakan data tentang penyimpanan instans, IOPS, dan throughput yang tersedia. Untuk informasi selengkapnya tentang metrik ini, lihat [Metrik CloudWatch tingkat instans Amazon untuk Amazon RDS](rds-metrics.md#rds-cw-metrics-instance).

Untuk memantau penggunaan penyimpanan lokal Anda saat ini, masuk ke database Anda dan jalankan kueri berikut:

```
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');
```

Untuk informasi selengkapnya tentang file sementara dan penggunaannya, lihat[Mengelola file sementara dengan PostgreSQL](PostgreSQL.ManagingTempFiles.md).

## Batasan untuk RDS Optimized Reads di PostgreSQL
<a name="USER_PostgreSQL.optimizedreads-limitations"></a>

Batasan berikut berlaku untuk RDS Optimized Reads di PostgreSQL:
+ Transaksi dapat gagal ketika penyimpanan instans penuh.