Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyimpanan kueri adalah fitur di server fleksibel Azure Database for PostgreSQL yang menyediakan cara untuk melacak performa kueri dari waktu ke waktu. Query Store menyederhanakan pemecahan 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 server fleksibel Azure Database for PostgreSQL.
Aktifkan penyimpanan kueri
Query Store tersedia tanpa biaya tambahan. Ini adalah fitur keikutsertaan, sehingga tidak diaktifkan secara default di server. Anda dapat mengaktifkan atau menonaktifkan penyimpanan kueri secara global untuk semua database di server tertentu. Anda tidak dapat mengaktifkan atau menonaktifkannya per database.
Penting
Jangan aktifkan penyimpanan kueri pada tingkat harga Burstable karena menyebabkan masalah performa.
Mengaktifkan Query Store di portal Azure
- Masuk ke portal Azure dan pilih server fleksibel Azure Database for PostgreSQL Anda.
- Pilih Parameter di bagian Pengaturan pada menu.
- Cari parameter
pg_qs.query_capture_mode. - Atur nilai ke
topatauall, 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 dalamazure_sysdatabase.
Mengaktifkan pengambilan sampel tunggu penyimpanan kueri
- Cari parameter
pgms_wait_sampling.query_capture_mode. - Atur nilainya ke
alldan 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. Anda dapat membuat kueri atas informasi dalam penyimpanan ini menggunakan tampilan.
Mengakses informasi penyimpanan kueri
Azure Database for PostgreSQL server fleksibel menyimpan data penyimpanan kueri dalam azure_sys database.
Kueri berikut mengembalikan informasi tentang kueri yang direkam oleh 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 mengelompokkan peristiwa tunggu yang berbeda ke dalam wadah berdasarkan kesamaan. Query Store menyediakan jenis peristiwa tunggu, nama peristiwa tunggu tertentu, dan kueri yang dimaksud. Saat Anda menghubungkan informasi tunggu ini dengan statistik runtime kueri, Anda mendapatkan pemahaman yang lebih mendalam tentang apa yang berkontribusi pada karakteristik performa kueri.
Berikut adalah beberapa contoh bagaimana Anda bisa mendapatkan lebih banyak wawasan tentang beban kerja Anda dengan menggunakan statistik tunggu di Query Store:
| Pengamatan | Action |
|---|---|
| Kunci tinggi menunggu | Periksa teks kueri yang terpengaruh dan identifikasi entitas target. Lihat di Query Store untuk kueri lain yang sering dijalankan dan 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 pembacaan fisik yang tinggi di Query Store. Jika kueri tersebut cocok dengan kueri yang memiliki waktu tunggu I/O yang tinggi, pertimbangkan untuk mengaktifkan fitur penyetelan otonom guna melihat apakah fitur tersebut dapat merekomendasikan pembuatan beberapa indeks yang mungkin mengurangi jumlah pembacaan fisik untuk kueri tersebut. |
| Memori tinggi menunggu | Temukan kueri yang menggunakan memori terbanyak di Query Store. Kueri ini mungkin menghambat progres lebih lanjut dari kueri yang terdampak. |
Opsi konfigurasi
Saat Penyimpanan Kueri diaktifkan, fitur ini menyimpan data dalam jendela agregasi. Panjang jendela ini ditentukan oleh parameter pg_qs.interval_length_minutes , yang defaultnya menjadi 15 menit. Untuk setiap jendela, Query Store menyimpan hingga 500 kueri unik. Atribut yang membedakan keunikan setiap kueri adalah user_id (pengidentifikasi pengguna yang menjalankan kueri), db_id (pengidentifikasi database dalam konteks yang kuerinya dijalankan), dan query_id (nilai bilangan bulat secara unik mengidentifikasi kueri yang dijalankan). Jika jumlah kueri yang berbeda mencapai 500 selama interval yang dikonfigurasi, query store membebaskan alokasi 5% dari kueri yang direkam untuk menyediakan ruang bagi kueri lainnya. Kueri yang pertama kali dealokasikan adalah kueri yang paling sedikit dieksekusi.
Untuk mengonfigurasi parameter Query Store, gunakan opsi berikut:
| 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.max_captured_queries |
Jumlah maksimum kueri yang disimpan kueri bertahan dari semua kueri yang direkam selama setiap interval pengambilan. | 500 |
100 - 500 |
pg_qs.max_plan_size |
Jumlah maksimum byte yang disimpan Query Store dari teks rencana kueri. Rencana yang lebih panjang terpotong. | 7500 |
100 - 10000 |
pg_qs.max_query_text_length |
Panjang maksimum kueri yang dapat disimpan oleh penyimpanan kueri. Kueri yang lebih panjang dipotong. | 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 Query Store harus menyimpan rencana kueri. | off |
on, off |
pg_qs.track_utility |
Apakah toko kueri perlu melacak perintah utilitas? | on |
on, off |
Nota
Jika Anda mengubah nilai parameter pg_qs.max_query_text_length, teks semua kueri yang ditangkap oleh penyimpanan kueri sebelum Anda melakukan perubahan akan tetap menggunakan query_id dan sql_query_text yang sama. Perilaku ini mungkin memberi kesan bahwa nilai baru tidak berlaku tetapi, untuk kueri yang tidak direkam penyimpanan kueri sebelumnya, Anda melihat bahwa teks kueri menggunakan panjang maksimum yang baru dikonfigurasi. Perilaku ini dirancang dan dijelaskan di Tampilan dan fungsi. Jika Anda menjalankan query_store.qs_reset, ini akan menghapus semua informasi yang direkam penyimpanan kueri hingga saat ini, termasuk teks yang diambilnya untuk setiap ID kueri. 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.query_capture_mode |
Pernyataan mana yang harus dilacak ekstensi pgms_wait_sampling. |
none |
none, all |
Nota
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 menghapusnya dengan menggunakan 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
Contoh berikut mengilustrasikan cara kerja normalisasi kueri:
Misalkan Anda membuat tabel dengan menggunakan pernyataan berikut:
create table tableOne (columnOne int, columnTwo int);
Anda mengaktifkan pengumpulan data Query Store, 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 ID kueri yang sama. Query Store menyimpan teks kueri pertama yang berjalan setelah Anda mengaktifkan pengumpulan data. Oleh karena itu, teksnya adalah 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 ID kueri yang sama. Teks yang mengidentifikasi semuanya adalah teks kueri pertama dalam batch: select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;.
Terakhir, kueri berikut tidak cocok dengan ID kueri kueri di batch sebelumnya. Alasan mengapa mereka tidak cocok dijelaskan dalam daftar berikut:
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 urutannya dibalik. Urutan berubah dari columnOne, ColumnTwo dalam batch sebelumnya menjadi ColumnTwo, columnOne dalam kueri ini.
Kueri:
select * from tableOne where columnTwo = 25 and columnOne = 25;
Alasan ketidakcocokan: Urutan evaluasi ekspresi dalam klausa WHERE dibalik. Urutan berubah dari columnOne = ? and ColumnTwo = ? dalam batch sebelumnya menjadi 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.
Views
query_store.qs_view
Tampilan ini mengembalikan semua data yang disimpan oleh Query Store dalam tabel pendukungnya. Data yang masih direkam oleh penyimpanan kueri di memori untuk jendela waktu yang sedang aktif saat ini belum terlihat hingga jendela waktu tersebut berakhir dan data volatil di memori dikumpulkan serta disimpan secara permanen ke tabel yang disimpan pada disk. Tampilan ini mengembalikan baris yang berbeda untuk setiap database berbeda (db_id), pengguna (user_id), dan kueri (query_id).
| Nama | Type | 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 diklusterkan bersama-sama. Teks ini adalah teks untuk kueri pertama dalam kluster. Nilai default untuk panjang teks kueri maksimum adalah 6.000, dan Anda dapat mengubahnya dengan 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 |
stempel waktu | Kueri diagregasi menurut jendela waktu. Parameter 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 |
stempel waktu | Waktu akhir yang sesuai dengan jendela waktu untuk entri ini. | |
calls |
bigint | Berapa kali kueri dijalankan di jendela waktu ini. Untuk kueri paralel, jumlah panggilan untuk setiap eksekusi setara dengan 1 untuk proses backend yang menjalankan eksekusi kueri, ditambah satu unit tambahan untuk setiap proses pekerja backend yang diluncurkan untuk bekerja sama 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. Untuk kueri paralel, jumlah baris untuk setiap eksekusi setara dengan jumlah baris yang dikembalikan ke klien oleh proses backend yang menjalankan eksekusi kueri, ditambah total semua baris yang dikembalikan ke proses backend tersebut oleh setiap proses pekerja backend yang diluncurkan untuk membantu menjalankan cabang paralel dari pohon eksekusi. | |
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 |
kirim pesan teks | Jenis operasi yang diwakili oleh kueri. Nilai yang mungkin adalah unknown, , selectupdate, insert, delete, merge, utility, nothing, undefined. |
|
search_path |
kirim pesan teks | Nilai search_path ditetapkan pada saat kueri diambil. | |
query_parameters |
kirim pesan 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 |
kirim pesan 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 | Type | 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 diklusterkan bersama-sama. 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), (pilih), 1 (perbarui), 23 (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 | Type | Referensi | Deskripsi |
|---|---|---|---|
start_time |
stempel waktu | Kueri diagregasi menurut jendela waktu. Parameter 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 |
stempel 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 |
kirim pesan teks | Jenis peristiwa yang dinanti backend. | |
event |
kirim pesan teks | Nama peristiwa tunggu jika backend saat ini menunggu. | |
calls |
bilangan bulat | Jumlah berapa kali peristiwa yang sama dicatat. |
Nota
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 | Type | 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. |
Functions
query_store.qs_reset
Fungsi ini menghapus semua statistik yang dikumpulkan oleh 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 menghapus semua statistik yang dikumpulkan di memori oleh penyimpanan kueri. Data ini belum ditulis ke tabel pada disk yang mendukung persistensi data yang dikumpulkan untuk Query Store. 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 di server yang memiliki replika baca tidak secara otomatis mengaktifkan penyimpanan kueri pada salah satu replika baca. Bahkan jika Anda mengaktifkannya di salah satu replika baca, penyimpanan kueri tidak merekam kueri yang dijalankan pada replika baca apa pun. Replika baca beroperasi dalam mode hanya-baca hingga Anda menaikkannya menjadi instance utama.