Menggunakan pg_stat_statements dan pg_buffercache
Manfaatkan sambungan berkuasa seperti `pg_stat_statements` dan `pg_buffercache` untuk mendapatkan gambaran mendalam tentang prestasi.
Menggunakan pg_stat_statements dan pg_buffercache ialah pelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Prestasi PostgreSQL & Pengoptimuman Pertanyaan merangkumi sejumlah 4 pelajaran.
Sambungan PostgreSQL: Peningkatan Kuasa
PostgreSQL amat berkuasa, dan fungsinya boleh diperluas lagi menggunakan sambungan.
Sambungan ialah modul yang menambah fungsi, jenis data, operator dan banyak lagi kepada pangkalan data anda. Sambungan ini seperti pemalam yang meningkatkan keupayaan pangkalan data tanpa mengubah kod terasnya.
Dalam pelajaran ini, kita akan meneroka dua sambungan penting untuk pemantauan prestasi: pg_stat_statements dan pg_buffercache.
Kenali pg_stat_statements: Pemprofil Pertanyaan
pg_stat_statements ialah alat yang amat bernilai untuk memahami beban kerja pangkalan data anda. Alat ini menjejaki statistik pelaksanaan bagi semua pernyataan SQL yang dilaksanakan oleh pelayan.
Sambungan ini membantu anda mengenal pasti:
- Pertanyaan yang paling kerap dijalankan.
- Pertanyaan yang menggunakan jumlah masa paling banyak.
- Pertanyaan dengan purata masa pelaksanaan yang tinggi.
- Pertanyaan yang membaca atau menulis banyak blok cakera.
Alat ini menjadi pilihan utama anda untuk mengenal pasti kesesakan prestasi pada peringkat pertanyaan.
Mengaktifkan pg_stat_statements
Untuk menggunakan pg_stat_statements, anda perlu mendayakannya terlebih dahulu dalam konfigurasi PostgreSQL.
1. Edit fail postgresql.conf anda dan tambah pg_stat_statements pada parameter shared_preload_libraries. Contohnya, shared_preload_libraries = 'pg_stat_statements'.
2. Mulakan semula pelayan PostgreSQL anda supaya perubahan berkuat kuasa.
3. Akhir sekali, sambungkan ke pangkalan data anda dan cipta sambungan tersebut:
CREATE EXTENSION pg_stat_statements;Mentafsir Output pg_stat_statements
Setelah didayakan, pg_stat_statements mengumpulkan data dalam paparan bernama pg_stat_statements. Berikut ialah beberapa lajur utama yang sering anda periksa:
query: Pernyataan SQL yang dinormalkan.calls: Bilangan kali pertanyaan dilaksanakan.total_time: Jumlah masa yang digunakan untuk melaksanakan pertanyaan ini (dalam milisaat).mean_time: Purata masa pelaksanaan bagi setiap panggilan.rows: Jumlah baris yang dikembalikan atau terjejas.shared_blks_hit/shared_blks_read: Capaian cache berbanding bacaan cakera.
Mengisih mengikut total_time membantu mencari penggunaan sumber keseluruhan yang terbesar.
Contoh Praktikal: Pertanyaan Teratas
Mari lihat cara mencari 5 pertanyaan teratas yang menggunakan jumlah masa pelaksanaan paling banyak. Pertanyaan ini membantu anda mengutamakan usaha pengoptimuman.
Lajur hit_percent memberikan gambaran tentang keberkesanan cache penimbal PostgreSQL untuk pertanyaan tersebut.
SELECT
query,
calls,
total_time,
mean_time,
rows,
100.0 * shared_blks_hit / (shared_blks_hit + shared_blks_read + 1) AS hit_percent
FROM
pg_stat_statements
ORDER BY
total_time DESC
LIMIT 5;Kenali pg_buffercache: Pemeriksa Memori
Walaupun pg_stat_statements menunjukkan prestasi pertanyaan, pg_buffercache memberikan gambaran tentang cache penimbal dikongsi PostgreSQL. Inilah kawasan memori tempat PostgreSQL menyimpan blok data yang kerap diakses.
Memahami kandungan cache penimbal membantu anda menentukan:
- Jadual atau indeks yang paling aktif digunakan.
- Sama ada tetapan
shared_buffersmencukupi. - Sama ada pertanyaan mendapat manfaat daripada data cache atau mengakses cakera.
Mengaktifkan pg_buffercache
Mendayakan pg_buffercache lebih mudah berbanding pg_stat_statements. Biasanya, tindakan ini tidak memerlukan pengubahsuaian pada shared_preload_libraries atau mula semula pelayan.
Anda hanya perlu menyambung ke pangkalan data anda dan mencipta sambungan tersebut:
CREATE EXTENSION pg_buffercache;Meninjau Cache Penimbal Dikongsi
Selepas mencipta sambungan, Anda boleh membuat pertanyaan pada paparan pg_buffercache untuk melihat hubungan (jadual atau indeks) yang menggunakan penimbal paling banyak. Setiap penimbal biasanya mewakili blok data berukuran 8KB.
Pertanyaan ini memaparkan 5 hubungan teratas berdasarkan bilangan penimbal yang digunakan dalam cache:
SELECT
c.relname AS relation_name,
count(*) AS buffers_in_cache
FROM
pg_buffercache b
JOIN
pg_class c ON b.relfilenode = c.relfilenode
JOIN
pg_database d ON b.reldatabase = d.oid AND d.datname = current_database()
GROUP BY
c.relname
ORDER BY
buffers_in_cache DESC
LIMIT 5;Mentafsir Keberkesanan Cache
Jika jadual atau indeks sentiasa muncul di bahagian teratas output pg_buffercache dengan banyak penimbal, ini bermakna data tersebut kerap diakses dan disimpan dalam memori.
Ini biasanya petanda yang baik kerana capaian memori jauh lebih pantas berbanding I/O cakera. Nilai hit_percent yang tinggi dalam pg_stat_statements selalunya berkait dengan data yang berada dalam cache penimbal.
Anda boleh menggunakan maklumat ini untuk menentukan sama ada peningkatan shared_buffers atau pengoptimuman pertanyaan supaya mengakses kurang data akan memberikan manfaat.
Semakan Pantas: Alat Pemantauan
Manakah antara pernyataan berikut yang benar tentang pg_stat_statements dan pg_buffercache?
Imbas Kembali: Menyelami Sambungan
Syabas! Anda telah mempelajari cara memanfaatkan dua sambungan PostgreSQL yang berkuasa untuk pemantauan prestasi:
pg_stat_statements: Alat penting Anda untuk membuat profil pertanyaan SQL, mengenal pasti pernyataan yang berjalan lambat atau kerap dilaksanakan, serta memahami penggunaan sumbernya.pg_buffercache: Memberikan keterlihatan kepada cache penimbal dikongsi, membantu Anda memahami data yang sedang berada dalam memori dan sejauh mana caching Anda berfungsi dengan berkesan.
Apabila digabungkan, sambungan ini memberikan gambaran mendalam tentang beban kerja dan penggunaan memori pangkalan data Anda, sekali gus membimbing usaha pengoptimuman Anda.
Pelajari SQL dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 22
- Pelajaran
- 88
Soalan Lazim
Adakah pelajaran “Menggunakan pg_stat_statements dan pg_buffercache” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan, termasuk “Menggunakan pg_stat_statements dan pg_buffercache”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Prestasi PostgreSQL & Pengoptimuman Pertanyaan merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menggunakan pg_stat_statements dan pg_buffercache”?
Manfaatkan sambungan berkuasa seperti `pg_stat_statements` dan `pg_buffercache` untuk mendapatkan gambaran mendalam tentang prestasi. Anda berlatih Prestasi PostgreSQL & Pengoptimuman Pertanyaan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Prestasi PostgreSQL & Pengoptimuman Pertanyaan?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Menggunakan pg_stat_statements dan pg_buffercache” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan ini?
Ya. Setiap pelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menggunakan pg_stat_statements dan pg_buffercache
- Konfigurasi Pengelogan untuk Analisis
- Penyepaduan Alat Pemantauan Luaran
- Mendiagnosis Aktiviti Langsung dengan pg_stat_activity