Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
- Jelentkezzen be az Azure Portalra, és válassza ki a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt.
- Válassza a Kiszolgálóparaméterek lehetőséget a menü Beállítások szakaszában.
- Keresse meg a paramétert
pg_qs.query_capture_mode. - Á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 azazure_sysadatbázisban való megőrzésére.
Lekérdezéstár várakozási mintavételezésének engedélyezése
- Keresse meg a paramétert
pgms_wait_sampling.query_capture_mode. - Á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.