Bagikan melalui


Repositori kueri

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Penyimpanan kueri adalah fitur di server fleksibel Azure Database for PostgreSQL yang menyediakan cara untuk melacak performa kueri dari waktu ke waktu. Penyimpanan kueri mempermudah penyelesaian masalah kinerja dengan membantu Anda dengan cepat menemukan kueri yang berjalan paling lama dan paling banyak menggunakan sumber daya. Penyimpanan kueri secara otomatis mencatat riwayat kueri dan statistik runtime, serta menyimpan data tersebut untuk tinjauan Anda. Ini mengiris data berdasarkan waktu sehingga Anda dapat melihat pola penggunaan temporal. Data untuk semua pengguna, database, dan kueri disimpan dalam database bernama azure_sys di instans server fleksibel Azure Database for PostgreSQL.

Aktifkan penyimpanan kueri

Penyimpanan kueri bisa digunakan tanpa biaya ekstra. Ini adalah fitur keikutsertaan, sehingga tidak diaktifkan secara default di server. Penyimpanan kueri dapat diaktifkan atau dinonaktifkan secara global untuk semua database di server tertentu dan tidak dapat diaktifkan atau dinonaktifkan per database.

Penting

Jangan aktifkan penyimpanan penelusuran pada tingkat harga Burstable karena akan menyebabkan penurunan performa.

Mengaktifkan Query Store di portal Azure

  1. Masuk ke portal Azure dan pilih instans server fleksibel Azure Database for PostgreSQL Anda.
  2. Pilih Parameter server di bagian Pengaturan pada menu.
  3. Cari parameter pg_qs.query_capture_mode.
  4. Atur nilai ke top atau all, tergantung pada apakah Anda ingin melacak kueri tingkat atas atau juga kueri berlapis (yang dijalankan di dalam fungsi atau prosedur), dan pilih Simpan. Izinkan hingga 20 menit agar batch data pertama bertahan dalam azure_sys database.

Mengaktifkan pengambilan sampel tunggu penyimpanan kueri

  1. Cari parameter pgms_wait_sampling.query_capture_mode.
  2. Atur nilainya ke all dan Simpan.

Informasi di penyimpanan kueri

Penyimpanan kueri terdiri dari dua penyimpanan:

  • Penyimpanan statistik runtime untuk mempertahankan informasi statistik eksekusi kueri.
  • Penyimpanan statistik tunggu untuk mempertahankan informasi statistik tunggu.

Skenario umum untuk menggunakan Query Store meliputi:

  • Menentukan berapa kali kueri dijalankan dalam jendela waktu tertentu.
  • Membandingkan waktu eksekusi rata-rata kueri di seluruh jendela waktu untuk melihat variasi besar.
  • Mengidentifikasi kueri yang berjalan paling lama dalam beberapa jam terakhir.
  • Mengidentifikasi kueri N teratas yang menunggu sumber daya.
  • Memahami sifat waktu tunggu untuk kueri tertentu.

Untuk meminimalkan penggunaan ruang, statistik eksekusi runtime di penyimpanan statistik runtime diagregat melalui jendela waktu yang tetap dan dapat dikonfigurasi. Informasi di penyimpanan ini dapat dikueri menggunakan tampilan.

Mengakses informasi penyimpanan kueri

Data penyimpanan kueri disimpan dalam azure_sys database di instans server fleksibel Azure Database for PostgreSQL Anda. Kueri berikut mengembalikan informasi tentang kueri yang direkam di penyimpanan kueri:

SELECT * FROM  query_store.qs_view;

Dan kueri ini mengembalikan informasi tentang statistik tunggu:

SELECT * FROM  query_store.pgms_wait_sampling_view;

Menemukan kueri tunggu

Jenis peristiwa tunggu menggabungkan berbagai peristiwa tunggu ke dalam wadah berdasarkan kesamaan. Penyimpanan kueri menyediakan jenis peristiwa tunggu, nama peristiwa tunggu tertentu, dan kueri yang dimaksud. Mampu menghubungkan informasi tunggu ini dengan statistik runtime kueri yang berarti Anda bisa mendapatkan pemahaman yang mendalam tentang apa yang berkontribusi pada karakteristik performa kueri.

Berikut beberapa contoh cara mendapatkan wawasan lebih dalam tentang beban kerja Anda dengan menggunakan statistik tunggu di Query Store:

Pengamatan Perbuatan
Kunci tinggi menunggu Periksa teks kueri untuk kueri yang terpengaruh dan identifikasi entitas target. Lihat di penyimpanan kueri untuk kueri lain yang sering dijalankan dan/atau memiliki durasi tinggi dan memodifikasi entitas yang sama. Setelah mengidentifikasi kueri ini, pertimbangkan untuk mengubah logika aplikasi untuk meningkatkan konkurensi, atau menggunakan tingkat isolasi yang kurang ketat.
Waktu tunggu IO buffer yang tinggi Temukan kueri dengan jumlah tinggi bacaan fisik di query store. Jika kueri cocok dengan kueri yang memiliki tunggu IO tinggi, pertimbangkan untuk mengaktifkan fitur penyetelan indeks otomatis untuk melihat apakah fitur tersebut dapat merekomendasikan pembuatan beberapa indeks yang mungkin mengurangi jumlah pembacaan fisik untuk kueri tersebut.
Memori tinggi menunggu Temukan kueri yang paling banyak menggunakan memori di penyimpanan kueri. Kueri ini mungkin memperlambat kemajuan lebih lanjut dari kueri yang terpengaruh.

Opsi konfigurasi

Saat penyimpanan kueri diaktifkan, data disimpan dalam jendela agregasi dengan panjang yang ditentukan oleh parameter server pg_qs.interval_length_minutes (secara default adalah 15 menit). Untuk setiap jendela, sistem ini menyimpan hingga 500 kueri berbeda per jendela. Atribut yang membedakan keunikan setiap kueri user_id (pengidentifikasi pengguna yang menjalankan kueri), db_id (pengidentifikasi database dalam konteks kueri yang dijalankan), dan query_id (nilai bilangan bulat yang secara unik mengidentifikasi kueri yang dijalankan). Jika jumlah kueri yang berbeda mencapai 500 selama interval yang dikonfigurasi, 5% dari kueri yang tercatat akan dialokasikan ulang untuk menyediakan ruang bagi yang lain. Yang pertama dibatalkan alokasinya adalah yang paling jarang dijalankan.

Opsi berikut tersedia untuk mengonfigurasi parameter Penyimpanan Kueri:

Parameter Deskripsi Default Rentang
pg_qs.interval_length_minutes (*) Tetapkan interval dalam menit untuk penyimpanan kueri. Menentukan frekuensi persistensi data. 15 1 - 30
pg_qs.is_enabled_fs Penggunaan Internal Saja: Parameter ini digunakan sebagai sakelar penggantian fitur. Jika ditampilkan sebagai nonaktif, penyimpanan kueri dinonaktifkan, meskipun nilai yang ditetapkan untuk pg_qs.query_capture_mode. on on, off
pg_qs.max_plan_size Jumlah maksimum byte yang dapat disimpan dari teks rencana pencarian oleh database penyimpanan kueri; rencana yang lebih panjang dicopot. 7500 100 - 10000
pg_qs.max_query_text_length Panjang kueri maksimum yang dapat disimpan; kueri yang lebih panjang terpotong. 6000 100 - 10000
pg_qs.parameters_capture_mode Apakah dan kapan mengambil parameter posisi kueri. capture_parameterless_only capture_parameterless_only, capture_first_sample
pg_qs.query_capture_mode Pernyataan yang harus dilacak. none none, top, all
pg_qs.retention_period_in_days Periode retensi dalam hitungan hari untuk penyimpanan kueri. Data yang lebih lama dihapus secara otomatis. 7 1 - 30
pg_qs.store_query_plans Apakah rencana kueri harus disimpan di penyimpanan kueri. off on, off
pg_qs.track_utility Apakah toko kueri perlu melacak perintah utilitas? on on, off

(*) Parameter server statis yang memerlukan hidupkan ulang server agar perubahan nilainya diterapkan.

Catatan

Jika Anda mengubah nilai untuk pg_qs.max_query_text_length parameter, teks semua kueri yang diambil sebelum Anda membuat perubahan terus menggunakan query_id dan sql_query_text yang sama. Mungkin memberi kesan bahwa nilai baru tidak berlaku tetapi, untuk kueri yang tidak direkam di penyimpanan kueri sebelumnya, Anda akan melihat bahwa teks kueri menggunakan panjang maksimum yang baru dikonfigurasi. Hal ini sudah dirancang, dan dijelaskan di Tampilan dan fungsi. Jika Anda menjalankan query_store.qs_reset, itu menghapus semua informasi yang direkam oleh penyimpanan kueri hingga sekarang, termasuk teks yang diambil untuk setiap ID kueri, dan jika salah satu kueri tersebut dijalankan lagi, panjang maksimum yang baru dikonfigurasi diterapkan ke teks yang diambil.

Opsi berikut berlaku khusus untuk statistik tunggu:

Parameter Deskripsi Default Rentang
pgms_wait_sampling.history_period Frekuensi, dalam milidetik, di mana peristiwa tunggu diambil sampelnya. 100 1 - 600000
pgms_wait_sampling.is_enabled_fs Penggunaan Internal Saja: Parameter ini digunakan sebagai sakelar penggantian fitur. Jika ditampilkan sebagai off, pengambilan sampel tunggu dinonaktifkan meskipun nilai yang ditetapkan untuk pgms_wait_sampling.query_capture_mode. on on, off
pgms_wait_sampling.query_capture_mode Pernyataan mana yang harus dilacak ekstensi pgms_wait_sampling. none none, all

Catatan

pg_qs.query_capture_mode supersedes pgms_wait_sampling.query_capture_mode. Jika pg_qs.query_capture_mode adalah none, pgms_wait_sampling.query_capture_mode pengaturan tidak berpengaruh.

Gunakan portal Microsoft Azure untuk mendapatkan atau mengatur nilai yang berbeda untuk suatu parameter.

Tampilan dan fungsi

Anda bisa mengkueri informasi yang direkam oleh penyimpanan kueri dan atau menghapusnya menggunakan beberapa tampilan dan fungsi yang tersedia dalam query_store skema azure_sys database. Siapa pun dalam peran publik PostgreSQL dapat menggunakan tampilan ini untuk melihat data di penyimpanan kueri. Tampilan ini hanya tersedia di database azure_sys.

Kueri dinormalisasi dengan melihat strukturnya dan mengabaikan apa pun yang tidak signifikan secara semantik, seperti literal, konstanta, alias, atau perbedaan dalam casing.

Jika dua kueri identik secara semantik, bahkan jika menggunakan alias yang berbeda untuk kolom dan tabel yang direferensikan yang sama, kueri tersebut diidentifikasi dengan query_id yang sama. Jika dua kueri hanya berbeda dalam nilai harfiah yang digunakan di dalamnya, kueri juga diidentifikasi dengan query_id yang sama. Untuk kueri yang diidentifikasi dengan query_id yang sama, sql_query_text adalah milik kueri yang pertama kali dijalankan sejak penyimpanan kueri mulai merekam aktivitas, atau sejak terakhir kali data berkelanjutan dihapus karena fungsi query_store.qs_reset dijalankan.

Cara kerja normalisasi kueri

Berikut adalah beberapa contoh untuk mencoba menggambarkan cara kerja normalisasi ini:

Katakanlah Anda membuat tabel dengan pernyataan berikut:

create table tableOne (columnOne int, columnTwo int);

Anda mengaktifkan pengumpulan data Penyimpanan Kueri, dan satu atau beberapa pengguna menjalankan kueri berikut, dalam urutan yang tepat ini:

select * from tableOne;
select columnOne, columnTwo from tableOne;
select columnOne as c1, columnTwo as c2 from tableOne as t1;
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one";

Semua kueri sebelumnya berbagi query_id yang sama. Dan teks yang disimpan oleh Query Store adalah dari kueri pertama yang dijalankan setelah pengumpulan data diaktifkan. Oleh karena itu, itu akan menjadi select * from tableOne;.

Kumpulan kueri berikut, setelah dinormalisasi, tidak cocok dengan kumpulan kueri sebelumnya karena klausa WHERE membuatnya berbeda secara semantik:

select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;
select * from tableOne where columnOne = -3 and columnTwo = -3;
select columnOne, columnTwo from tableOne where columnOne = '5' and columnTwo = '5';
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one" where columnOne = 7 and columnTwo = 7;

Namun, semua kueri dalam set terakhir ini berbagi query_id yang sama dan teks yang digunakan untuk mengidentifikasi semuanya adalah kueri pertama dalam batch select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;.

Terakhir, temukan beberapa kueri di bawah ini yang tidak cocok dengan query_id yang ada di batch sebelumnya, dan alasan mengapa mereka tidak:

Kueri:

select columnTwo as c2, columnOne as c1 from tableOne as t1 where columnOne = 1 and columnTwo = 1;

Alasan untuk tidak cocok: Daftar kolom mengacu pada dua kolom yang sama (columnOne dan ColumnTwo), tetapi urutan di mana kolom yang dirujuk dibalik, dari columnOne, ColumnTwo dalam batch sebelumnya ke ColumnTwo, columnOne dalam kueri ini.

Kueri:

select * from tableOne where columnTwo = 25 and columnOne = 25;

Alasan untuk tidak cocok: Urutan referensi ekspresi yang dievaluasi dalam klausa WHERE dibalik dari columnOne = ? and ColumnTwo = ? pada batch sebelumnya ke ColumnTwo = ? and columnOne = ? dalam kueri ini.

Kueri:

select abs(columnOne), columnTwo from tableOne where columnOne = 12 and columnTwo = 21;

Alasan untuk tidak cocok: Ekspresi pertama dalam daftar kolom tidak columnOne lagi, tetapi fungsi abs dievaluasi lebih dari columnOne (abs(columnOne)), yang tidak setara secara semantik.

Kueri:

select columnOne as "column one", columnTwo as "column two" from tableOne as "table one" where columnOne = ceiling(16) and columnTwo = 16;

Alasan untuk tidak cocok: Ekspresi pertama dalam klausul WHERE tidak mengevaluasi kesetaraan columnOne dengan literal lagi, tetapi dengan hasil fungsi ceiling yang dievaluasi melalui literal, yang tidak setara secara semantik.

Tayangan

query_store.qs_view

Tampilan ini mengembalikan semua data yang disimpan dalam tabel pendukung penyimpanan kueri. Data yang masih merekam dalam memori untuk jendela waktu aktif saat ini, tidak terlihat sampai jendela waktu berakhir, dan data volatil dalam memori dikumpulkan dan disimpan ke tabel yang disimpan di disk. Tampilan ini mengembalikan baris yang berbeda untuk setiap database berbeda (db_id), pengguna (user_id), dan kueri (query_id).

Nama Jenis Referensi Deskripsi
runtime_stats_entry_id bigint ID dari tabel runtime_stats_entries.
user_id oid pg_authid.oid OID pengguna yang menjalankan pernyataan.
db_id oid pg_database.oid OID dari database tempat pernyataan tersebut dijalankan.
query_id bigint Kode hash internal, dihitung dari pohon penguraian pernyataan.
query_sql_text varchar(10000) Teks pernyataan perwakilan. Kueri yang berbeda dengan struktur yang sama dikelompokkan bersama; teks ini adalah teks untuk kueri pertama dalam kluster. Nilai default untuk panjang teks kueri maksimum adalah 6000, dan dapat dimodifikasi menggunakan parameter pg_qs.max_query_text_lengthpenyimpanan kueri . Jika teks kueri melebihi nilai maksimum ini, teks akan dipotong ke byte pertama pg_qs.max_query_text_length .
plan_id bigint ID dari rencana yang sesuai dengan kueri ini.
start_time cap waktu Kueri diagregasi menurut jendela waktu. Parameter server pg_qs.interval_length_minutes menentukan rentang waktu jendela tersebut (defaultnya adalah 15 menit). Kolom ini sesuai dengan waktu mulai jendela tempat entri ini direkam.
end_time cap waktu Waktu akhir yang sesuai dengan jendela waktu untuk entri ini.
calls bigint Berapa kali kueri dijalankan di jendela waktu ini. Perhatikan bahwa untuk kueri paralel, jumlah panggilan untuk setiap eksekusi adalah 1 untuk proses backend yang menggerakkan eksekusi kueri, ditambah unit lain sebanyak jumlah yang diperlukan untuk setiap proses pekerja backend tambahan yang diluncurkan guna berkolaborasi mengeksekusi cabang paralel dari pohon eksekusi.
total_time presisi ganda Total waktu eksekusi kueri, dalam milidetik.
min_time presisi ganda Waktu eksekusi kueri minimum, dalam milidetik.
max_time presisi ganda Waktu eksekusi kueri maksimum, dalam milidetik.
mean_time presisi ganda Rata-rata waktu eksekusi kueri, dalam milidetik.
stddev_time presisi ganda Standar deviasi waktu pelaksanaan kueri, dalam milidetik.
rows bigint Jumlah total baris yang diambil atau dipengaruhi oleh pernyataan. Perhatikan bahwa untuk kueri paralel, jumlah baris untuk setiap eksekusi sesuai dengan jumlah baris yang dikembalikan ke klien oleh proses backend yang mendorong eksekusi kueri, ditambah jumlah semua baris yang diluncurkan untuk setiap proses pekerja backend, yang diluncurkan untuk berkolaborasi mengeksekusi cabang paralel dari pohon eksekusi, kembali ke proses backend yang mendorong eksekusi kueri.
shared_blks_hit bigint Jumlah total hit cache blok bersama oleh pernyataan.
shared_blks_read bigint Jumlah total blok bersama yang dibaca oleh pernyataan.
shared_blks_dirtied bigint Jumlah total blok bersama yang dikorsi oleh pernyataan.
shared_blks_written bigint Jumlah total blok bersama yang ditulis oleh pernyataan.
local_blks_hit bigint Jumlah total pencapaian cache blok lokal dari pernyataan.
local_blks_read bigint Jumlah total blok lokal yang dibaca oleh pernyataan.
local_blks_dirtied bigint Jumlah total blok lokal yang dikorsi oleh pernyataan.
local_blks_written bigint Jumlah total blok lokal yang ditulis oleh pernyataan.
temp_blks_read bigint Jumlah total blok sementara yang dibaca oleh pernyataan.
temp_blks_written bigint Jumlah total blok sementara yang ditulis oleh pernyataan.
blk_read_time presisi ganda Total waktu yang dihabiskan pernyataan untuk membaca blok, dalam milidetik (jika track_io_timing diaktifkan, jika tidak nol).
blk_write_time presisi ganda Total waktu yang dihabiskan pernyataan untuk menulis blok, dalam milidetik (jika track_io_timing diaktifkan, jika tidak nol).
is_system_query Boolean Menentukan apakah peran dengan user_id = 10 (azuresu) menjalankan kueri. Pengguna tersebut memiliki hak istimewa superuser dan digunakan untuk melakukan operasi sarana kontrol. Karena layanan ini adalah layanan PaaS terkelola, hanya Microsoft yang merupakan bagian dari peran superuser tersebut.
query_type teks Jenis operasi yang diwakili oleh kueri. Nilai yang mungkin adalah unknown, , selectupdate, insert, delete, merge, utility, nothing, undefined.
search_path teks Nilai search_path ditetapkan pada saat kueri diambil.
query_parameters teks Representasi teks objek JSON dengan nilai yang diteruskan ke parameter posisi kueri berparameter. Kolom ini hanya mengisi nilainya dalam dua kasus: 1) untuk kueri yang tidak diparameterisasi. 2) Untuk kueri berparameter, ketika pg_qs.parameters_capture_mode disetel ke capture_first_sample, dan jika penyimpanan kueri dapat mengambil nilai untuk parameter kueri saat eksekusi.
parameters_capture_status teks Jenis operasi yang diwakili oleh kueri. Nilai yang mungkin adalah succeeded (kueri tidak diparameterkan atau kueri berparameter dan nilai berhasil diambil), disabled (kueri diparameterkan tetapi, parameter tidak diambil karena pg_qs.parameters_capture_mode diatur ke capture_parameterless_only), too_long_to_capture (kueri diparameterkan, tetapi parameter tidak diambil karena panjang JSON yang dihasilkan yang akan muncul di query_parameters kolom tampilan ini, dianggap terlalu lama agar penyimpanan kueri bertahan), too_many_to_capture (kueri diparameterkan, tetapi parameter tidak diambil karena jumlah total parameter, dianggap berlebihan agar penyimpanan kueri bertahan), serialization_failed (kueri diparameterkan, tetapi setidaknya salah satu nilai yang diteruskan sebagai parameter tidak dapat diserialisasikan ke teks).

query_store.query_texts_view

Tampilan ini mengembalikan data teks kueri di Penyimpanan Kueri. Ada satu baris untuk setiap query_sql_text yang berbeda.

Nama Jenis Deskripsi
query_text_id bigint ID untuk tabel query_texts
query_sql_text varchar(10000) Teks pernyataan perwakilan. Kueri yang berbeda dengan struktur yang sama dikelompokkan bersama; teks ini adalah teks untuk kueri pertama dalam kluster.
query_type smallint Jenis operasi yang diwakili oleh kueri. Dalam versi PostgreSQL <= 14, nilai yang mungkin adalah 0 (tidak diketahui), 1 (pilih), 2 (perbarui), 3 (sisipkan), 4 (hapus), 5 (utilitas), 6 (tidak ada). Dalam versi PostgreSQL >= 15, nilai yang mungkin adalah 0 (tidak diketahui), 1 (pilih), 2 (perbarui), 3 (sisipkan), 4 (hapus), 5 (gabungkan), 6 (utilitas), 7 (tidak ada).

query_store.pgms_wait_sampling_view

Tampilan ini mengembalikan data kejadian tunggu di Penyimpanan Kueri. Tampilan ini mengembalikan baris yang berbeda untuk setiap database berbeda (db_id), pengguna (user_id), kueri (query_id), dan peristiwa (peristiwa).

Nama Jenis Referensi Deskripsi
start_time cap waktu Kueri diagregasi menurut jendela waktu. Parameter server pg_qs.interval_length_minutes menentukan rentang waktu jendela tersebut (defaultnya adalah 15 menit). Kolom ini sesuai dengan waktu mulai jendela tempat entri ini direkam.
end_time cap waktu Waktu akhir yang sesuai dengan jendela waktu untuk entri ini.
user_id oid pg_authid.oid Pengidentifikasi objek pengguna yang menjalankan pernyataan.
db_id oid pg_database.oid Pengidentifikasi objek database tempat pernyataan dijalankan.
query_id bigint Kode hash internal, dihitung dari pohon penguraian pernyataan.
event_type teks Jenis peristiwa yang dinanti backend.
event teks Nama peristiwa tunggu jika backend saat ini menunggu.
calls Bilangan bulat Jumlah berapa kali peristiwa yang sama dicatat.

Catatan

Untuk daftar nilai yang mungkin dalam kolom event_type dan event dari tampilan query_store.pgms_wait_sampling_view, lihat dokumentasi resmi pg_stat_activity dan cari informasi yang merujuk pada kolom dengan nama yang sama.

query_store.query_plans_view

Tampilan ini mengembalikan rencana kueri yang digunakan untuk menjalankan kueri. Ada satu baris untuk setiap ID database yang berbeda dan ID kueri. Penyimpanan kueri hanya merekam rencana kueri untuk kueri non-penggunaan.

Nama Jenis Referensi Deskripsi
plan_id bigint Nilai hash dari rencana kueri yang dinormalisasi yang dihasilkan oleh EXPLAIN. Ini dalam bentuk yang dinormalisasi karena tidak termasuk perkiraan biaya node rencana dan penggunaan buffer.
db_id oid pg_database.oid OID dari database tempat pernyataan tersebut dijalankan.
query_id bigint Kode hash internal, dihitung dari pohon penguraian pernyataan.
plan_text varchar(10000) Rencana eksekusi pernyataan yang diberikan costs=false, buffers=false, dan format=text. Output identik sebagai yang dihasilkan oleh EXPLAIN.

Fungsi

query_store.qs_reset

Fungsi ini menghapus semua statistik yang dikumpulkan sejauh ini dari penyimpanan kueri. Ini membuang statistik untuk jendela waktu yang sudah ditutup, yang sudah disimpan ke tabel pada disk. Ini juga membuang statistik untuk jendela waktu saat ini, yang hanya ada dalam memori. Hanya anggota peran admin server (azure_pg_admin) yang dapat menjalankan fungsi ini.

toko_kueri.pembersihan_data_pentahapan

Fungsi ini membuang semua statistik yang dikumpulkan dalam memori oleh penyimpanan kueri (yaitu, data dalam memori yang belum dipindahkan ke tabel pada disk yang mendukung persistensi data yang dikumpulkan oleh penyimpanan kueri). Hanya anggota peran admin server (azure_pg_admin) yang dapat menjalankan fungsi ini.

Mode baca-saja

Saat server fleksibel Azure Database for PostgreSQL berada dalam mode baca-saja, seperti ketika default_transaction_read_only parameter diatur ke on, atau jika mode baca-saja diaktifkan secara otomatis karena mencapai kapasitas penyimpanan, penyimpanan kueri tidak menangkap data apa pun.

Mengaktifkan penyimpanan kueri pada server yang memiliki replika pembaca tidak secara otomatis mengaktifkan penyimpanan kueri pada replika pembaca manapun. Bahkan jika Anda mengaktifkannya di salah satu replika baca, penyimpanan kueri tidak merekam kueri yang dijalankan pada replika baca apa pun, karena mereka beroperasi dalam mode baca-saja sampai Anda mempromosikannya ke primer.