Memahami statistik
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, kami tidak tahu apakah ini semua data, atau sebagian kecil, sehingga sulit untuk merencanakan strategi kueri sampai kami melihat datanya. Jika kita tahu bahwa tabel berisi pesanan yang memiliki harga beli antara $1,00 dan $800,00, ini mungkin mengarahkan kita untuk menggunakan indeks untuk mencari sebagian kecil dari data, namun, ini masih belum cukup informasi untuk rencana kueri kita. Faktanya, meskipun pesanan memiliki harga pembelian antara $1,00 dan $800,00, 95% pesanan adalah antara $10,00 dan $20,00 dan pemindaian data sebenarnya adalah rencana yang paling efektif.
Dengan skenario seperti contoh sebelumnya, PostgreSQL membutuhkan statistik terperinci untuk dapat menggunakan rencana kueri yang 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;
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: