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, 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;

Screenshot of pg_stat_activity query.

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. Screenshot of pg_statements.track setting.
  3. Jika Anda ingin menonaktifkan pelacakan, pilih NONE.
  4. Untuk pelacakan yang lebih tepat, pilih ALL.
  5. Setelan bawaannya adalah TOP.
  6. Pilih Simpan.