Megosztás a következőn keresztül:


Lekérdezéstár

A lekérdezéstár egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldány egyik funkciója, amely lehetővé teszi a lekérdezési teljesítmény időbeli nyomon követését. A lekérdezéstár leegyszerűsíti a teljesítményproblémák elhárítását azáltal, hogy segít gyorsan megtalálni a leghosszabb ideig futó és leginkább erőforrás-igényes lekérdezéseket. A lekérdezéstár automatikusan rögzíti a lekérdezések és a futtatókörnyezet statisztikáinak előzményeit, és megőrzi őket a felülvizsgálathoz. Idő szerint szeleteli az adatokat, hogy láthassa az időbeli használati mintákat. Az összes felhasználó, adatbázis és lekérdezés adatait egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányban elnevezett azure_sys adatbázisban tárolja a rendszer.

Lekérdezéstár engedélyezése

A lekérdezéstár további díjak nélkül használható. Ez egy bejelentkezési funkció, ezért alapértelmezés szerint nincs engedélyezve egy kiszolgálón. A lekérdezéstár globálisan engedélyezhető vagy letiltható egy adott kiszolgálón lévő összes adatbázis esetében, és nem kapcsolható be vagy ki adatbázisonként.

Fontos

Ne engedélyezze a lekérdezéstárat a burstable tarifacsomagon, mert az teljesítménybeli hatást okozna.

Lekérdezéstár engedélyezése az Azure Portalon

  1. Jelentkezzen be az Azure Portalra, és válassza ki a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt.
  2. Válassza a Kiszolgálóparaméterek lehetőséget a menü Beállítások szakaszában.
  3. Keresse meg a paramétert pg_qs.query_capture_mode .
  4. Állítsa be vagy állítsa be az értéket topallattól függően, hogy nyomon szeretné-e követni a legfelső szintű lekérdezéseket vagy a beágyazott lekérdezéseket (amelyek egy függvényen vagy eljáráson belül futnak), majd válassza a Mentés lehetőséget. Az első adatköteg legfeljebb 20 percet hagyhat az azure_sys adatbázisban való megőrzésére.

Lekérdezéstár várakozási mintavételezésének engedélyezése

  1. Keresse meg a paramétert pgms_wait_sampling.query_capture_mode .
  2. Állítsa be az értéket a mentésre és a mentésre.all

Információk a lekérdezéstárban

A lekérdezéstár két tárolóból áll:

  • Futtatókörnyezeti statisztikák tárolója a lekérdezés-végrehajtási statisztikák adatainak megőrzéséhez.
  • Várakozási statisztikák tárolója a várakozási statisztikák adatainak megőrzéséhez.

A lekérdezéstár használatának gyakori forgatókönyvei a következők:

  • Annak meghatározása, hogy egy lekérdezés hány alkalommal lett végrehajtva egy adott időablakban.
  • A lekérdezések átlagos végrehajtási idejének összehasonlítása az időablakokban a nagy változatok megtekintéséhez.
  • A leghosszabb ideig futó lekérdezések azonosítása az elmúlt néhány órában.
  • Az erőforrásokra várakozó leggyakoribb N-lekérdezések azonosítása.
  • Az adott lekérdezésre váró várakozások természetének megértése.

A helyhasználat minimalizálása érdekében a futtatókörnyezet-statisztikában lévő futtatókörnyezet végrehajtási statisztikái egy rögzített, konfigurálható időkereten vannak összesítve. Az ezekben az üzletekben található információk lekérdezhetők nézetek használatával.

Lekérdezéstár adatainak elérése

Az adatlekérdezések tárolójának adatai a(z) azure_sys adatbázisban vannak tárolva az Azure Database for PostgreSQL rugalmas kiszolgálópéldányán. Az alábbi lekérdezés a lekérdezéstárban rögzített lekérdezésekről ad vissza információkat:

SELECT * FROM  query_store.qs_view;

Ez a lekérdezés pedig a várakozási statisztikákra vonatkozó információkat adja vissza:

SELECT * FROM  query_store.pgms_wait_sampling_view;

Várakozási lekérdezések keresése

A várakozási esemény típusok a különböző várakozási eseményeket hasonlóság alapján csoportokba egyesítik. A lekérdezéstár tartalmazza a várakozási esemény típusát, az adott várakozási esemény nevét és a kérdéses lekérdezést. Ha képes korrelálni ezt a várakozási információt a lekérdezés futtatókörnyezeti statisztikáival, mélyebben megismerheti, hogy mi járul hozzá a lekérdezési teljesítmény jellemzőihez.

Íme néhány példa arra, hogyan nyerhet további betekintést a számítási feladatokba a lekérdezéstár várakozási statisztikáinak használatával:

Megfigyelés Művelet
Magas zárolási várakozások Ellenőrizze az érintett lekérdezések lekérdezési szövegeit, és azonosítsa a célentitásokat. Keresse meg a lekérdezéstárban azokat a lekérdezéseket, amelyeket gyakran hajtanak végre és/vagy nagy időtartamúak, és ugyanazt az entitást módosítják. A lekérdezések azonosítása után fontolja meg az alkalmazáslogika módosítását az egyidejűség javítása érdekében, vagy használjon kevésbé korlátozó elkülönítési szintet.
Magas I/O várakozási idők a pufferben Keresse meg a lekérdezéstárban nagy számú fizikai olvasást tartalmazó lekérdezéseket. Ha magas I/O-várakozással egyeznek meg a lekérdezésekkel, érdemes engedélyezni az automatikus indexhangolási funkciót, hogy megállapítsa, javasolható-e olyan indexek létrehozása, amelyek csökkenthetik a lekérdezések fizikai olvasási számát.
Hosszú memória várakozások Keresse meg a legnagyobb memóriaigényű lekérdezéseket a lekérdezéstárban. Ezek a lekérdezések valószínűleg késleltetik az érintett lekérdezések további előrehaladását.

Konfigurációs lehetőségek

Ha a lekérdezéstár engedélyezve van, az adatokat a pg_qs.interval_length_minutes kiszolgálóparaméter által meghatározott hosszúságú összesítő ablakokba menti (alapértelmezés szerint 15 percre). Minden ablakban legfeljebb 500 különböző lekérdezést tárol. Az egyes lekérdezések egyediségét megkülönböztető attribútumok a user_id (a lekérdezést végrehajtó felhasználó azonosítója), db_id (annak az adatbázisnak az azonosítója, amelynek környezetében a lekérdezés végrehajtja) és query_id (a végrehajtott lekérdezést egyedi azonosító egész szám). Ha az eltérő lekérdezések száma eléri az 500-ot a konfigurált időköz alatt, a rögzített lekérdezések 5%-a felszabadítva lesz, hogy több helyet biztosítsunk. Azokat szabadítják fel elsőként, amelyeket a legkevesebb alkalommal hajtottak végre.

A lekérdezéstár paramétereinek konfigurálásához az alábbi beállítások érhetők el:

Paraméter Leírás Alapértelmezett Tartomány
pg_qs.interval_length_minutes (*) A lekérdezéstár időközének rögzítése percekben. Meghatározza az adatmegőrzés gyakoriságát. 15 1 - 30
pg_qs.is_enabled_fs Csak belső használat: Ezt a paramétert a rendszer funkció felülbírálási kapcsolóként használja. Ha kikapcsolva jelenik meg, a lekérdezéstár a beállított pg_qs.query_capture_modeérték ellenére le van tiltva. on on, off
pg_qs.max_plan_size A lekérdezéstár által a lekérdezésterv szövegéből mentett bájtok maximális száma; a hosszabb tervek csonkítva vannak. 7500 100 - 10000
pg_qs.max_query_text_length Menthető lekérdezések maximális hossza, a hosszabb lekérdezéseket levágjuk. 6000 100 - 10000
pg_qs.parameters_capture_mode Lekérdezés pozícióparamétereinek rögzítésének szükségessége és időzítése. capture_parameterless_only capture_parameterless_only, capture_first_sample
pg_qs.query_capture_mode Nyomon követendő utasítások. none \, \, \
pg_qs.retention_period_in_days A lekérdezéstár napokra vonatkozó megőrzési időtartam ablak. A rendszer automatikusan törli a régebbi adatokat. 7 1 - 30
pg_qs.store_query_plans Azt határozza meg, hogy a lekérdezéscsomagokat menteni kell-e a lekérdezéstárban. off on, off
pg_qs.track_utility Azt határozza meg, hogy a lekérdezéstárnak követnie kell-e a segédprogramparancsokat. on on, off

(*) Statikus kiszolgálóparaméter, amely a kiszolgáló újraindítását igényli az érték módosításának érvénybe lépéséhez.

Feljegyzés

Ha módosítja a paraméter értékét pg_qs.max_query_text_length , a módosítás előtt rögzített összes lekérdezés szövege továbbra is ugyanazt a query_id és sql_query_text használja. Ez azt a benyomást keltheti, hogy az új érték nem lép érvénybe, de a lekérdezéstárban korábban nem rögzített lekérdezések esetében látni fogja, hogy a lekérdezés szövege az újonnan konfigurált maximális hosszt használja. Ez szándékos, és a Nézetek és függvények részben van kifejtve. Ha végrehajtja a query_store.qs_reset parancsot, az eltávolítja az eddig a lekérdezéstárban rögzített összes adatot, beleértve az egyes lekérdezésazonosítókhoz rögzített szöveget is, és ha bármelyik lekérdezést újra végrehajtja, a rendszer az újonnan konfigurált maximális hosszt alkalmazza a rögzített szövegre.

A következő beállítások kifejezetten a várakozási statisztikákra vonatkoznak:

Paraméter Leírás Alapértelmezett Tartomány
pgms_wait_sampling.history_period Gyakoriság ezredmásodpercben, ahol a várakozási események mintavételezése folyamatban van. 100 1 - 600000
pgms_wait_sampling.is_enabled_fs Csak belső használat: Ezt a paramétert a rendszer funkció felülbírálási kapcsolóként használja. Ha a várakozási offmintavételezés a megadott pgms_wait_sampling.query_capture_modeérték ellenére is le van tiltva. on on, off
pgms_wait_sampling.query_capture_mode Mely utasításokat kell követnie a pgms_wait_sampling bővítménynek. none none, all

Feljegyzés

pg_qs.query_capture_mode felülírja pgms_wait_sampling.query_capture_mode. Ha pg_qs.query_capture_mode igen none, a pgms_wait_sampling.query_capture_mode beállításnak nincs hatása.

Az Azure Portal használatával lekérhet vagy beállíthat egy másik értéket egy paraméterhez.

Nézetek és függvények

Az adatbázis sémájában elérhető nézetek és függvények használatával lekérdezheti és törölheti a query_storeazure_sys lekérdezéstár által rögzített adatokat. A PostgreSQL nyilvános szerepkörben bárki használhatja ezeket a nézeteket az adatok lekérdezéstárban való megtekintéséhez. Ezek a nézetek csak az azure_sys adatbázisban érhetők el.

A lekérdezések normalizálhatók úgy, hogy áttekintik a szerkezetüket, és figyelmen kívül hagynak minden nem szemantikailag jelentőset, például literálokat, állandókat, aliasokat vagy különbségeket a burkolatban.

Ha két lekérdezés szemantikailag azonos, még akkor is, ha ugyanazon hivatkozott oszlopokhoz és táblákhoz különböző aliasokat használnak, ugyanazzal a query_id azonosítja őket. Ha két lekérdezés csak a bennük használt literális értékekben különbözik, ugyanazzal a query_id is azonosítja őket. Az azonos query_id azonosított lekérdezések sql_query_text a lekérdezéstár rögzítési tevékenységének megkezdése óta először végrehajtott lekérdezés sql_query_text, vagy a tárolt adatok utolsó elvetése óta a query_store.qs_reset függvény végrehajtása óta.

A lekérdezés normalizálásának működése

Az alábbiakban néhány példát mutatunk be a normalizálás működésének szemléltetésére:

Tegyük fel, hogy a következő utasítással hoz létre egy táblát:

create table tableOne (columnOne int, columnTwo int);

Engedélyezi a Lekérdezéstár adatgyűjtést, és egyetlen vagy több felhasználó hajtja végre a következő lekérdezéseket pontosan ebben a sorrendben:

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

Az összes korábbi lekérdezés azonos query_id. A Lekérdezéstár által megtartott szöveg pedig az adatgyűjtés engedélyezése után végrehajtott első lekérdezés szövege. Ezért az lenne select * from tableOne;.

A normalizálás után a következő lekérdezések nem egyeznek meg az előző lekérdezéskészlettel, mert a WHERE záradék szemantikailag eltérővé teszi őket:

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;

Az utolsó készletben lévő lekérdezések azonban ugyanazt a query_id használják, és az azonosításukhoz használt szöveg a köteg select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;első lekérdezésének szövege.

Végül talál néhány olyan lekérdezést, amely nem felel meg az előző köteg query_id, és hogy miért nem:

Lekérdezés:

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

A nem egyezés oka: Az oszlopok listája ugyanarra a két oszlopra (columnOne és ColumnTwo) hivatkozik, de a hivatkozott sorrend fordított, az előző kötegből columnOne, ColumnTwoColumnTwo, columnOne a lekérdezésbe.

Lekérdezés:

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

Az egyeztetés sikertelenségének oka: A WHERE záradékban kiértékelt kifejezések hivatkozási sorrendje megfordult: az előző kötegben columnOne = ? and ColumnTwo = ? volt, és a jelen lekérdezésben ColumnTwo = ? and columnOne = ?.

Lekérdezés:

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

Az eltérés oka: Az oszloplistában szereplő első kifejezés már nem , hanem a columnOne (abs) -ra kiértékelt columnOne függvény, amely jelentésében nem egyenértékű.

Lekérdezés:

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

A nem egyezés oka: A WHERE záradék első kifejezése columnOne már nem a literális egyenlőséget értékeli ki, hanem egy konstanson kiértékelt függvény ceiling eredményével, amely nem szemantikailag egyenértékű.

Nézetek

query_store.qs_view

Ez a nézet a lekérdezéstár segédtábláiban tárolt összes adatot visszaadja. Azok az adatok, amelyek még mindig a memóriában rögzítik a jelenleg aktív időablakot, nem láthatók, amíg az időablak véget nem ér, és a rendszer összegyűjti és megőrzi a memóriában tárolt, felejtő adatokat a lemezen tárolt táblákban. Ez a nézet minden különálló adatbázishoz (db_id), felhasználóhoz (user_id) és lekérdezéshez (query_id) eltérő sort ad vissza.

Név Típus Hivatkozások Leírás
runtime_stats_entry_id bigint Azonosító a runtime_stats_entries táblából.
user_id Oid pg_authid.oid Az utasítást végrehajtó felhasználó objektumazonosítója.
db_id Oid pg_database.oid Annak az adatbázisnak az objektumazonosítója, amelyben az utasítást végrehajtották.
query_id bigint Az utasítás elemzési fájából kiszámított belső kivonatkód.
query_sql_text varchar(10000) Egy reprezentatív nyilatkozat szövege. Az azonos struktúrájú különböző lekérdezések klaszterbe vannak csoportosítva; ez a szöveg az első lekérdezés szövege a klaszterben. A lekérdezési szöveg maximális hosszának alapértelmezett értéke 6000, és a lekérdezéstár paraméterrel pg_qs.max_query_text_lengthmódosítható. Ha a lekérdezés szövege meghaladja ezt a maximális értéket, akkor az első pg_qs.max_query_text_length bájtra lesz csonkolva.
plan_id bigint A lekérdezésnek megfelelő terv azonosítója.
start_time timestamp A lekérdezéseket időablakok összesítik. A kiszolgálóparaméter pg_qs.interval_length_minutes határozza meg ezeknek az ablakoknak az időtartamát (alapértelmezés szerint 15 perc). Ez az oszlop annak az ablaknak a kezdő időpontjának felel meg, amelyben ezt a bejegyzést rögzítették.
end_time timestamp A bejegyzés időablakának megfelelő befejezési idő.
calls bigint A lekérdezés végrehajtásának száma ebben az időablakban. Figyelje meg, hogy a párhuzamos lekérdezések esetében az egyes végrehajtások hívásainak száma 1-nek felel meg a lekérdezés végrehajtását végrehajtó háttérfolyamathoz, valamint az egyes háttérmunkafolyamatokhoz tartozó további egységeknek, amelyek a végrehajtási fa párhuzamos ágainak végrehajtásával való együttműködéshez indulnak el.
total_time dupla pontosság Lekérdezések teljes végrehajtási ideje ezredmásodpercben.
min_time dupla pontosság A lekérdezések minimális végrehajtási ideje ezredmásodpercben.
max_time dupla pontosság A lekérdezés végrehajtásának maximális időtartama ezredmásodpercben.
mean_time dupla pontosság A lekérdezések átlagos végrehajtási ideje ezredmásodpercben.
stddev_time dupla pontosság A lekérdezés végrehajtási idejének szórása ezredmásodpercben.
rows bigint Az utasítás által lekérdezett vagy érintett sorok teljes száma. Figyelje meg, hogy a párhuzamos lekérdezések esetében az egyes végrehajtások sorainak száma megegyezik a lekérdezés végrehajtását végrehajtó háttérfolyamat által az ügyfélnek visszaadott sorok számával, valamint azoknak a soroknak az összegével, amelyeket az egyes háttér-feldolgozó folyamatok a végrehajtási fa párhuzamos ágainak végrehajtásával való együttműködésre indítottak el, visszatérnek a lekérdezés végrehajtását végrehajtó háttérfolyamathoz.
shared_blks_hit bigint Az utasítás által a megosztott gyorsítótárblokkok összes találata.
shared_blks_read bigint Az utasítás által beolvasott megosztott blokkok teljes száma.
shared_blks_dirtied bigint Az utasítás által szennyezett megosztott blokkok teljes száma.
shared_blks_written bigint Az utasítás által írt megosztott blokkok teljes száma.
local_blks_hit bigint Az utasításonkénti helyi blokkgyorsítótár-találatok teljes száma.
local_blks_read bigint Az utasítás által beolvasott helyi blokkok teljes száma.
local_blks_dirtied bigint Az utasítás által szennyezett helyi blokkok teljes száma.
local_blks_written bigint Az utasítás által írt helyi blokkok teljes száma.
temp_blks_read bigint Az utasítás által beolvasott ideiglenes blokkok teljes száma.
temp_blks_written bigint Az utasítás által írt ideiglenes blokkok teljes száma.
blk_read_time dupla pontosság Az utasítás olvasási blokkok elolvasására fordított teljes ideje ezredmásodpercben (ha a track_io_timing engedélyezve van, egyébként nulla).
blk_write_time dupla pontosság Az utasítás blokkok írásával töltött teljes ideje ezredmásodpercben (ha track_io_timing engedélyezve van, egyébként nulla).
is_system_query Boolean Meghatározza, hogy a user_id = 10 (azuresu) szerepkör végrehajtotta-e a lekérdezést. Ez a felhasználó szuperfelhasználói jogosultságokkal rendelkezik, és vezérlősík-műveletek végrehajtására szolgál. Mivel ez a szolgáltatás egy felügyelt PaaS-szolgáltatás, csak a Microsoft része ennek a felügyelői szerepkörnek.
query_type SMS A lekérdezés által képviselt művelet típusa. A lehetséges értékek a következőkunknown: , select, update, insertdelete, merge, utility, nothingundefined.
search_path SMS A lekérdezés rögzítésekor beállított search_path értéke.
query_parameters SMS JSON-objektum szöveges ábrázolása a paraméteres lekérdezés helyparamétereinek átadott értékekkel. Ez az oszlop csak két esetben tölti fel az értékét: 1) a nemparaméteres lekérdezések esetében. 2) Paraméteres lekérdezések esetén, mikor pg_qs.parameters_capture_mode van beállítva capture_first_sample, és ha a lekérdezéstár le tudja kérni a lekérdezés paramétereinek értékeit a végrehajtáskor.
parameters_capture_status SMS A lekérdezés által képviselt művelet típusa. Lehetséges értékek: succeeded (vagy a lekérdezés nem volt paraméteres, vagy paraméteres volt, és az értékeket sikeresen rögzítették), disabled (a lekérdezés paraméteres volt, de a paraméterek nem lettek rögzítve, mert pg_qs.parameters_capture_mode beállítása capture_parameterless_only volt), too_long_to_capture (a lekérdezés paraméteres volt, de a paraméterek nem lettek rögzítve, mert az eredményül kapott JSON hossza, amely a nézet query_parameters oszlopában jelenik meg, túlságosan hosszúnak minősült a lekérdezéstár megőrzéséhez), too_many_to_capture (a lekérdezés paraméteres volt, de a paraméterek teljes száma túlzónak minősült a lekérdezéstár megőrzéséhez), serialization_failed (a lekérdezés paraméteres volt, de a paraméterként átadott értékek közül legalább egyet nem lehetett szöveggé alakítani).

lekérdezés_tár.lekérdezés_szövegek_megjelenítés

Ez a nézet lekérdezési szöveges adatokat ad vissza a Lekérdezéstárban. Minden különálló query_sql_text-hez tartozik egy sor.

Név Típus Leírás
query_text_id bigint A query_texts tábla azonosítója
query_sql_text varchar(10000) Egy reprezentatív nyilatkozat szövege. Az azonos struktúrájú különböző lekérdezések klaszterbe vannak csoportosítva; ez a szöveg az első lekérdezés szövege a klaszterben.
query_type smallint A lekérdezés által képviselt művelet típusa. A PostgreSQL <= 14 verziójában a lehetséges értékek 0 (ismeretlenek), 1 (kiválasztás), 2 (frissítés), 3 (beszúrás), 4 (törlés), 5 (segédprogram), 6 (semmi). A PostgreSQL >= 15 verziójában a lehetséges értékek 0 (ismeretlenek), 1 (kiválasztás), 2 (frissítés), 3 (beszúrás), 4 (törlés), 5 (egyesítés), 6 (segédprogram), 7 (semmi).

query_store.pgms_wait_sampling_view [Várakozási mintavétel nézet a Query Store számára]

Ez a nézet várakozási események adatait adja vissza a Lekérdezéstárban. Ez a nézet egy másik sort ad vissza minden különálló adatbázishoz (db_id), felhasználóhoz (user_id), lekérdezéshez (query_id) és eseményhez (eseményhez).

Név Típus Hivatkozások Leírás
start_time timestamp A lekérdezéseket időablakok összesítik. A kiszolgálóparaméter pg_qs.interval_length_minutes határozza meg ezeknek az ablakoknak az időtartamát (alapértelmezés szerint 15 perc). Ez az oszlop annak az ablaknak a kezdő időpontjának felel meg, amelyben ezt a bejegyzést rögzítették.
end_time timestamp A bejegyzés időablakának megfelelő befejezési idő.
user_id Oid pg_authid.oid Az utasítást végrehajtó felhasználó objektumazonosítója.
db_id Oid pg_database.oid Annak az adatbázisnak az objektumazonosítója, amelyben az utasítást végrehajtották.
query_id bigint Az utasítás elemzési fájából kiszámított belső kivonatkód.
event_type SMS Az az eseménytípus, amelyre a háttérrendszer várakozik.
event SMS A várakozási esemény neve, ha a háttérrendszer jelenleg várakozik.
calls egész szám Hányszor rögzítette ugyanazt az eseményt.

Feljegyzés

A nézet lehetséges event_typeevent értékeinek query_store.pgms_wait_sampling_view listájáért tekintse meg a pg_stat_activity hivatalos dokumentációját, és keresse meg az azonos nevű oszlopokra hivatkozó információkat.

query_store.query_plans_view

Ez a nézet a lekérdezés végrehajtásához használt lekérdezéstervet adja vissza. Minden különálló adatbázis-azonosítóhoz és lekérdezésazonosítóhoz egy sor tartozik. A lekérdezéstár csak a nem használható lekérdezések lekérdezési terveit rögzíti.

Név Típus Hivatkozások Leírás
plan_id bigint A EXPLAIN által létrehozott normalizált lekérdezési terv kivonatértéke. Normalizált formában van, mert kizárja a tervcsomópontok becsült költségeit és a pufferek használatát.
db_id Oid pg_database.oid Annak az adatbázisnak az objektumazonosítója, amelyben az utasítást végrehajtották.
query_id bigint Az utasítás elemzési fájából kiszámított belső kivonatkód.
plan_text varchar(10000) A parancs végrehajtási terve a következő beállításokkal készült: költség=false, pufferek=false, és formátum=szöveg. Ugyanaz a kimenet, mint a EXPLAIN által előállított kimenet.

Functions

query_store.qs_reset

Ez a függvény elveti a lekérdezéstár által eddig összegyűjtött összes statisztikát. Elveti a már bezárt időablakok statisztikáit, amelyek már a lemezen lévő táblákban is megmaradnak. Az aktuális időablak statisztikáit is elveti, amelyek csak a memóriában léteznek. Ezt a függvényt csak a kiszolgálói rendszergazdai szerepkör (azure_pg_admin) tagjai hajthatják végre.

lekérdezés_tárhely.adat-előkészítés_alaphelyzetbe_állítása

Ez a függvény elveti a memóriában a lekérdezéstárak által összegyűjtött összes statisztikát (azaz a memóriában lévő adatokat, amelyek még nem öblíthetők ki a lemeztáblákra, támogatva a lekérdezéstárhoz gyűjtött adatok megőrzését). Ezt a függvényt csak a kiszolgálói rendszergazdai szerepkör (azure_pg_admin) tagjai hajthatják végre.

Írásvédett mód

Ha egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldány írásvédett módban van, például ha a default_transaction_read_only paraméter be van állítva on, vagy ha az írásvédett mód automatikusan engedélyezve van a tárkapacitás elérése miatt, a lekérdezéstár nem rögzít adatokat.

Ha olvasási replikákkal rendelkező kiszolgálón engedélyezi a lekérdezéstárat, az nem engedélyezi automatikusan a lekérdezéstárat egyik olvasási replikán sem. Még ha bármelyik olvasási replikán engedélyezi is, a lekérdezéstár nem rögzíti az olvasási replikákon végrehajtott lekérdezéseket, mert írásvédett módban működnek, amíg elő nem lépteti őket az elsődlegesre.