Memahami statistik

Selesai

Saat kueri berjalan, kueri perlu membuat rencana untuk memutuskan cara mengakses data. Misalnya, jika kueri SELECT mengembalikan setiap baris, tidak ada gunanya menggunakan indeks dan akan lebih efisien untuk memindai seluruh tabel. Dalam skenario ini, sangat mudah untuk merencanakan kueri, tetapi sebagian besar rencana kueri tidak begitu mudah untuk diselesaikan.

Bayangkan sebuah skenario di mana Anda menjalankan kueri yang menelusuri setiap pesanan antara $10,00 dan $20,00. Awalnya, kita tidak tahu apakah kueri mengembalikan semua data dalam tabel, atau hanya subset kecil. Ini tidak diketahui membuatnya sulit untuk merencanakan strategi kueri sampai kita melihat data. Jika kita tahu bahwa tabel berisi pesanan yang memiliki harga pembelian antara $1,00 dan $800,00, indeks dapat digunakan untuk mencari subset kecil data. Namun, mungkin masih belum ada informasi yang cukup untuk menghasilkan rencana kueri yang tepat. Dalam contoh ini, meskipun pesanan memiliki harga pembelian antara $ 1,00 dan $ 800,00, 95% pesanan antara $ 10,00 dan $ 20,00 dan pemindaian data sebenarnya adalah rencana yang paling efektif.

Dengan skenario seperti contoh sebelumnya, PostgreSQL memerlukan statistik terperinci untuk dapat menggunakan rencana kueri optimal.

Untuk memantau statistik perencanaan dan pelaksanaan, ada ekstensi PostgreSQL yang disebut pg_stat_statements. pg_stat_statements diaktifkan secara default di Azure Database for PostgreSQL dan memungkinkan anggota peran pg_read_all_stats untuk menanyakan statistik menggunakan beberapa tampilan pg_stat. Kueri berikut mengembalikan aktivitas kueri menggunakan tampilan pg_stat_activity:

SELECT * FROM pg_stat_activity;

Cuplikan layar kueri pg_stat_activity.

Menonaktifkan pg_stat_statements

Jika kueri Anda unik dan Anda tidak mengulangi kueri yang sama secara berkala, data kueri historis kurang berguna. Selain itu, jika Anda tidak menggunakan tampilan pg_stat, tampilan tersebut tidak memberikan manfaat apa pun. Ada biaya tambahan untuk mempertahankan pg_stat_statements, yang bisa mencapai 50%, dan Anda dapat menonaktifkan pelacakan pg_stat_statements dalam skenario ini.

Untuk menonaktifkan pelacakan pg_stat_statements, lakukan langkah-langkah berikut:

  1. Buka portal Azure dan pilih Azure Database for PostgreSQL Anda.

  2. Pilih Parameter server dan navigasikan ke setelan pg_stat_statements.track.

    Cuplikan layar perintah pg_statements.

  3. Jika Anda ingin menonaktifkan pelacakan, pilih TIDAK ADA.

  4. Untuk pelacakan yang lebih tepat, pilih ALL.

  5. Setelan bawaannya adalah TOP.

  6. Pilih Simpan.