Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Lakebase Autoscaling berada di Beta di wilayah berikut: eastus2, , westeuropewestus.
Lakebase Autoscaling adalah versi terbaru Lakebase dengan komputasi penskalaan otomatis, skala-ke-nol, percabangan, dan pemulihan instan. Untuk perbandingan fitur dengan Lakebase Provisioned, lihat memilih antar versi.
pg_stat_statements adalah ekstensi Postgres yang menyediakan tampilan statistik terperinci tentang eksekusi pernyataan SQL dalam database Lakebase Postgres Anda. Ini melacak informasi seperti jumlah eksekusi, total dan waktu eksekusi rata-rata, dan banyak lagi, membantu Anda menganalisis dan mengoptimalkan performa kueri SQL.
Kapan menggunakan pg_stat_statements
Gunakan pg_stat_statements saat Anda membutuhkan:
- Statistik eksekusi kueri terperinci dan metrik kinerja
- Identifikasi kueri yang lambat atau sering dijalankan
- Analisis kinerja kueri dan wawasan pengoptimalan
- Analisis beban kerja database dan perencanaan kapasitas
- Integrasi dengan alat dan dasbor pemantauan kustom
Mengaktifkan pg_stat_statements
pg_stat_statements Ekstensi ini tersedia di Lakebase Postgres. Untuk mengaktifkannya:
Sambungkan ke database Anda menggunakan editor SQL atau klien Postgres.
Jalankan perintah SQL berikut untuk membuat ekstensi:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;Ekstensi mulai mengumpulkan statistik segera setelah pembuatan.
Persistensi data
Statistik yang dikumpulkan oleh pg_stat_statements ekstensi disimpan dalam memori dan tidak dipertahankan saat komputasi Lakebase Anda ditangguhkan atau dimulai ulang. Misalnya, jika komputasi Anda menurun karena tidak aktif, statistik yang ada akan hilang. Statistik baru dikumpulkan setelah komputasi Anda dimulai ulang.
Perilaku ini berarti bahwa:
- Reset statistik setelah komputer dimulai ulang atau ditangguhkan
- Analisis performa jangka panjang memerlukan ketersediaan komputasi yang konsisten
- Anda mungkin ingin mengekspor statistik penting sebelum pemeliharaan terencana atau memulai ulang
Nota
Pertimbangkan untuk menjalankan kueri pemantauan Anda secara teratur dan menyimpan hasil secara eksternal jika Anda memerlukan data performa historis di seluruh peristiwa siklus hidup komputasi.
Pelajari lebih lanjut: Ekstensi Postgres
Statistik pelaksanaan kueri
Setelah mengaktifkan ekstensi, Anda dapat melakukan kueri statistik eksekusi menggunakan tampilan pg_stat_statements. Tampilan ini berisi satu baris per kueri database yang berbeda, memperlihatkan berbagai statistik:
SELECT * FROM pg_stat_statements LIMIT 10;
Tampilan berisi detail seperti:
| ID pengguna | dbid | queryid | kueri | panggilan |
|---|---|---|---|---|
| 16391 | 16384 | -9047282044438606287 | SELECT * DARI pengguna; | 10 |
Untuk daftar lengkap kolom dan deskripsi, lihat dokumentasi PostgreSQL.
Kueri pemantauan utama
Gunakan kueri ini untuk menganalisis performa database Anda:
Menemukan query paling lambat
Kueri ini mengidentifikasi kueri dengan waktu eksekusi rata-rata tertinggi, yang dapat menunjukkan kueri yang tidak efisien yang memerlukan pengoptimalan:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
(total_exec_time / calls) AS avg_time_ms
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 20;
Menemukan kueri yang paling sering dijalankan
Kueri yang paling sering dijalankan sering kali merupakan jalur penting dan kandidat pengoptimalan. Kueri ini mencakup rasio hit cache untuk membantu mengidentifikasi kueri yang mungkin mendapat manfaat dari pengindeksan yang lebih baik:
SELECT
query,
calls,
total_exec_time,
rows,
100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements
ORDER BY calls DESC
LIMIT 20;
Temukan kueri dengan I/O tertinggi
Kueri ini mengidentifikasi kueri yang melakukan operasi I/O disk terbanyak, yang dapat memengaruhi performa database secara keseluruhan:
SELECT
query,
calls,
shared_blks_read + shared_blks_written AS total_io,
shared_blks_read,
shared_blks_written
FROM pg_stat_statements
ORDER BY (shared_blks_read + shared_blks_written) DESC
LIMIT 20;
Menemukan kueri yang paling memakan waktu
Kueri ini mengidentifikasi kueri yang menggunakan total waktu eksekusi terbanyak di semua eksekusi:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
rows
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;
Temukan kueri yang mengembalikan banyak baris
Kueri ini mengidentifikasi kueri yang mengembalikan kumpulan hasil besar, yang mungkin mendapat manfaat dari penomoran halaman atau pemfilteran:
SELECT
query,
calls,
rows,
(rows / calls) AS avg_rows_per_call
FROM pg_stat_statements
ORDER BY rows DESC
LIMIT 10;
Reset statistik
Untuk mengatur ulang statistik yang dikumpulkan oleh pg_stat_statements:
Nota
Hanya databricks_superuser peran yang memiliki hak istimewa yang diperlukan untuk menjalankan fungsi ini. Peran default yang dibuat dengan proyek Lakebase dan peran yang dibuat di Aplikasi Lakebase diberikan keanggotaan dalam peran databricks_superuser.
SELECT pg_stat_statements_reset();
Fungsi ini menghapus semua akumulasi data statistik, seperti waktu dan jumlah eksekusi untuk pernyataan SQL, dan mulai mengumpulkan data baru. Ini sangat berguna ketika Anda ingin memulai dari awal dalam mengumpulkan statistik performa.
Sumber daya
Pelajari selengkapnya: Dokumentasi PostgreSQL