Delen via


Query-opslag

Van toepassing op: Azure Database for PostgreSQL - Flexible Server

Query store is een functie in azure Database for PostgreSQL flexibele server die een manier biedt om queryprestaties in de loop van de tijd bij te houden. Query Store vereenvoudigt het oplossen van prestatieproblemen door u te helpen snel de langst lopende en meest resource-intensieve query's te vinden. Query Store legt automatisch een geschiedenis van query's en runtimestatistieken vast en bewaart deze voor uw beoordeling. Hiermee worden de gegevens gesegmenteerd op tijd, zodat u tijdelijke gebruikspatronen kunt zien. Gegevens voor alle gebruikers, databases en query's worden opgeslagen in een database met de naam azure_sys in het flexibele serverexemplaren van Azure Database for PostgreSQL.

Query store inschakelen

Query Store is beschikbaar voor gebruik zonder extra kosten. Het is een opt-in-functie, dus deze is niet standaard ingeschakeld op een server. Querystore kan globaal worden ingeschakeld of uitgeschakeld voor alle databases op een bepaalde server en kan niet per database worden ingeschakeld of uitgeschakeld.

Belangrijk

Schakel querystore niet in op de prijscategorie Burstable, omdat dit invloed zou hebben op de prestaties.

Query store inschakelen in Azure Portal

  1. Meld u aan bij de Azure portal en selecteer uw flexibele serverexemplaar van Azure Database for PostgreSQL.
  2. Selecteer Serverparameters in de sectie Instellingen van het menu.
  3. Zoek de pg_qs.query_capture_mode parameter.
  4. Stel de waarde in op top of all, afhankelijk van of u query's op het hoogste niveau of geneste query's wilt bijhouden (de query's die in een functie of procedure worden uitgevoerd) en selecteer Opslaan. Het duurt maximaal 20 minuten voordat de eerste batch gegevens in de azure_sys database kan worden bewaard.

Wachtsampling van querystore inschakelen

  1. Zoek de pgms_wait_sampling.query_capture_mode parameter.
  2. Stel de waarde in op all en sla deze op.

Informatie in het queryarchief

Query Store bestaat uit twee winkels:

  • Een runtimestatistiekenarchief voor het persistent maken van de gegevens van de queryuitvoeringsstatistieken.
  • Een wachtstatistiekenarchief voor persistente informatie over wachtstatistieken.

Veelvoorkomende scenario's voor het gebruik van querystore zijn:

  • Bepalen hoe vaak een query in een bepaald tijdvenster is uitgevoerd.
  • Vergelijk de gemiddelde uitvoeringstijd van een query in tijdvensters om grote variaties te zien.
  • Het identificeren van langst lopende query's in de afgelopen uren.
  • De belangrijkste N-query's identificeren die op resources wachten.
  • Inzicht in de aard van de wachttijden voor een bepaalde query.

Om het ruimtegebruik te minimaliseren, worden de uitvoeringsstatistieken van runtime in het archief met runtimestatistieken geaggregeerd in een vast, configureerbaar tijdvenster. De informatie in deze gegevensopslag kan worden opgevraagd met behulp van visualisaties.

Toegang tot queryopslaggegevens

Queryopslaggegevens worden opgeslagen in de azure_sys database op uw Azure Database voor PostgreSQL flexibele serverinstantie. De volgende query retourneert informatie over query's die zijn vastgelegd in het queryarchief:

SELECT * FROM  query_store.qs_view;

Deze query retourneert informatie over wachtstatistieken:

SELECT * FROM  query_store.pgms_wait_sampling_view;

Wachtqueries zoeken

Wachtgebeurtenistypen combineren verschillende wachtgebeurtenissen in groepen op basis van gelijkenis. Het Query Store bevat het wachttype van de gebeurtenis, de specifieke naam van de wachttijdengebeurtenis en de query in kwestie. Als u deze wachtinformatie kunt correleren met de statistieken van de queryruntime, krijgt u meer inzicht in wat bijdraagt aan de prestatiekenmerken van query's.

Hier volgen enkele voorbeelden van hoe u meer inzicht krijgt in uw workload met behulp van de wachtstatistieken in querystore:

Observatie Actie
Hoge vergrendelingswachttijden Controleer de queryteksten voor de betrokken query's en identificeer de doelentiteiten. Zoek in het queryarchief naar andere query's die regelmatig worden uitgevoerd en/of een hoge duur hebben en dezelfde entiteit wijzigen. Nadat u deze query's hebt geïdentificeerd, kunt u overwegen de toepassingslogica te wijzigen om gelijktijdigheid te verbeteren of een minder beperkend isolatieniveau te gebruiken.
Buffer-IO-wachttijden met hoge belasting Zoek de query's met een groot aantal fysieke leesbewerkingen in het queryarchief. Als ze overeenkomen met de query's met hoge IO-wachttijden, kunt u overwegen om de functie voor automatisch afstemmen van indexen in te schakelen om te zien of het kan worden aanbevolen om een aantal indexen te maken die het aantal fysieke leesbewerkingen voor deze query's kunnen verminderen.
Hoge geheugenwachttijden Vind de queries die het meest geheugen verbruiken in de query store. Deze query's vertragen waarschijnlijk verdere voortgang van de betrokken query's.

Configuratieopties

Wanneer het queryarchief is ingeschakeld, worden gegevens opgeslagen in aggregatievensters van lengte die worden bepaald door de serverparameter pg_qs.interval_length_minutes (standaard ingesteld op 15 minuten). Voor elk venster worden maximaal 500 afzonderlijke query's per venster opgeslagen. Kenmerken die de uniekheid van elke query onderscheiden, zijn user_id (id van de gebruiker die de query uitvoert), db_id (id van de database in de context waarin de query wordt uitgevoerd) en query_id (een geheel getal dat de uitgevoerde query uniek identificeert). Als het aantal afzonderlijke query's gedurende het geconfigureerde interval 500 bereikt, worden 5% van de vastgelegde query's vrijgegeven om ruimte te maken voor meer. De toewijzingen die eerst zijn vrijgegeven, zijn degene die het minst aantal keren zijn uitgevoerd.

De volgende opties zijn beschikbaar voor het configureren van Query Store-parameters:

Parameter Beschrijving standaard Bereik
pg_qs.interval_length_minutes (*) Stel het interval in minuten vast voor de queryopslag. Definieert de frequentie van gegevenspersistentie. 15 1 - 30
pg_qs.is_enabled_fs Alleen intern gebruik: deze parameter wordt gebruikt als schakeloptie voor het overschrijven van functies. Als dit wordt weergegeven als uitgeschakeld, is querystore uitgeschakeld, ondanks de waarde die is ingesteld voor pg_qs.query_capture_mode. on on, off
pg_qs.max_plan_size Maximaal aantal bytes dat wordt opgeslagen in queryplantekst door query store; langere plannen worden afgekort. 7500 100 - 10000
pg_qs.max_query_text_length Maximale querylengte die kan worden opgeslagen; langere queries worden afgekapt. 6000 100 - 10000
pg_qs.parameters_capture_mode Hiermee wordt aangegeven of en wanneer querypositieparameters moeten worden vastgelegd. capture_parameterless_only capture_parameterless_only, capture_first_sample
pg_qs.query_capture_mode Verklaringen om te volgen. none none, top, all
pg_qs.retention_period_in_days Bewaarperiode in dagen voor query store. Oudere gegevens worden automatisch verwijderd. 7 1 - 30
pg_qs.store_query_plans Of queryplannen moeten worden opgeslagen in de query-opslagruimte. off on, off
pg_qs.track_utility Of querystore hulpprogrammaopdrachten moet bijhouden. on on, off

(*) Statische serverparameter waarvoor een server moet worden opgestart voordat een wijziging in de waarde ervan van kracht wordt.

Opmerking

Als u de waarde voor pg_qs.max_query_text_length de parameter wijzigt, blijft de tekst van alle query's die zijn vastgelegd voordat u de wijziging aanbrengt, dezelfde query_id en sql_query_text gebruiken. Het kan de indruk geven dat de nieuwe waarde niet van kracht wordt, maar voor query's die niet eerder zijn vastgelegd in het queryarchief, ziet u dat de querytekst de zojuist geconfigureerde maximumlengte gebruikt. Dit is standaard en wordt uitgelegd in Weergaven en functies. Als u query_store.qs_reset uitvoert, worden alle gegevens verwijderd die tot nu toe zijn vastgelegd in het queryarchief, inclusief de tekst die is vastgelegd voor elke query-id en als een van deze query's opnieuw wordt uitgevoerd, wordt de zojuist geconfigureerde maximumlengte toegepast op de tekst die wordt vastgelegd.

De volgende opties zijn specifiek van toepassing op wachtstatistieken:

Parameter Beschrijving standaard Bereik
pgms_wait_sampling.history_period Frequentie, in milliseconden, waarbij wachtgebeurtenissen worden bemonsterd. 100 1 - 600000
pgms_wait_sampling.is_enabled_fs Alleen intern gebruik: deze parameter wordt gebruikt als schakeloptie voor het overschrijven van functies. Als dit wordt weergegeven als off, wachtsampling is uitgeschakeld ondanks de waarde die is ingesteld voor pgms_wait_sampling.query_capture_mode. on on, off
pgms_wait_sampling.query_capture_mode Welke verklaringen de pgms_wait_sampling extensie moet bijhouden. none none, all

Opmerking

pg_qs.query_capture_mode pgms_wait_sampling.query_capture_modevervangt . Als pg_qs.query_capture_mode dat het is none, heeft de pgms_wait_sampling.query_capture_mode instelling geen effect.

Gebruik Azure Portal om een andere waarde voor een parameter op te halen of in te stellen.

Weergaven en functies

U kunt query's uitvoeren op de gegevens die zijn vastgelegd door het queryarchief en of deze verwijderen met behulp van enkele weergaven en functies die beschikbaar zijn in het query_store schema van de azure_sys database. Iedereen in de openbare PostgreSQL-rol kan deze weergaven gebruiken om de gegevens in het queryarchief te bekijken. Deze weergaven zijn alleen beschikbaar in de azure_sys-database .

Queries worden genormaliseerd door naar hun structuur te kijken en alles wat niet semantisch significant is, zoals letterlijke waarden, constanten, aliassen of verschillen in hoofdletters, te negeren.

Als twee query's s semantisch identiek zijn, zelfs als ze verschillende aliassen gebruiken voor dezelfde kolommen en tabellen waarnaar wordt verwezen, worden ze geïdentificeerd met dezelfde query_id. Als twee query's alleen verschillen in de letterlijke waarden die in deze query's worden gebruikt, worden ze ook geïdentificeerd met dezelfde query_id. Voor query's die zijn geïdentificeerd met dezelfde query_id, is het sql_query_text dat van de query die het eerst is uitgevoerd sinds de queryopslag begon met het registreren van activiteit, of sinds de laatste keer dat de opgeslagen gegevens zijn verwijderd omdat de functie query_store.qs_reset is uitgevoerd.

Hoe query normalisatie werkt

Hier volgen enkele voorbeelden om te illustreren hoe deze normalisatie werkt:

Stel dat u een tabel maakt met de volgende instructie:

create table tableOne (columnOne int, columnTwo int);

U schakelt Query Store-gegevensverzameling in en één of meerdere gebruikers voeren de volgende query's uit, in deze exacte volgorde:

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

Alle vorige query's delen dezelfde query_id. En de tekst die Query Store bewaart, is die van de eerste query die wordt uitgevoerd na het inschakelen van gegevensverzameling. Daarom zou het zijn select * from tableOne;.

De volgende set query's komt niet overeen met de vorige set query's zodra ze genormaliseerd zijn, omdat de WHERE-clausule ze semantisch anders maakt.

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;

Alle query's in deze laatste set delen echter dezelfde query_id en de tekst die wordt gebruikt om ze allemaal te identificeren, is dat van de eerste query in de batch select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;.

Ten slotte vindt u hieronder enkele query's die niet overeenkomen met de query_id van de query's in de vorige batch en de reden waarom ze niet:

Query:

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

Reden om niet overeen te komen: Lijst met kolommen verwijst naar dezelfde twee kolommen (columnOne en ColumnTwo), maar de volgorde waarin ze worden verwezen, wordt omgekeerd, van columnOne, ColumnTwo in de vorige batch naar ColumnTwo, columnOne in deze query.

Query:

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

Reden om niet overeen te komen: de volgorde waarin de uitdrukkingen die in de WHERE-uitdrukking worden geëvalueerd, omgekeerd is van columnOne = ? and ColumnTwo = ? in de vorige batch naar ColumnTwo = ? and columnOne = ? in deze query.

Query:

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

Reden om niet overeen te komen: de eerste expressie in de kolomlijst is niet columnOne meer, maar functie abs geëvalueerd over columnOne (abs(columnOne)), wat niet semantisch equivalent is.

Query:

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

Reden om niet overeen te komen: De eerste expressie in de WHERE-clausule evalueert niet langer de gelijkheid van columnOne met een letterlijke waarde, maar met het resultaat van de functie ceiling die over een letterlijke waarde wordt geëvalueerd, wat niet semantisch equivalent is.

Weergaven

query_winkel.qs_weergave

Deze weergave retourneert alle gegevens die worden bewaard in de ondersteunende tabellen van het queryarchief. Gegevens die nog steeds in het geheugen worden opgenomen voor het actieve tijdvenster, zijn pas zichtbaar als het tijdvenster aan een einde komt en de in-memory vluchtige gegevens worden verzameld en bewaard in tabellen die op schijf zijn opgeslagen. Deze weergave retourneert een andere rij voor elke afzonderlijke database (db_id), gebruiker (user_id) en query (query_id).

Naam Typ Verwijzingen Beschrijving
runtime_stats_entry_id Bigint Id uit de runtime_stats_entries tabel.
user_id of iets dergelijks pg_authid.oid OID van de gebruiker die de instructie heeft uitgevoerd.
db_id of iets dergelijks pg_database.oid OID van de database waarin de instructie is uitgevoerd.
query_id Bigint Interne hashcode, berekend uit de parseboom van de instructie.
query_sql_text varchar(10000) Tekst van een representatieve verklaring. Verschillende query's met dezelfde structuur worden samen geclusterd; deze tekst is de tekst voor de eerste van de query's in het cluster. De standaardwaarde voor de maximale lengte van querytekst is 6000 en kan worden gewijzigd met de query store-parameter pg_qs.max_query_text_length. Als de tekst van de query deze maximumwaarde overschrijdt, wordt deze afgekapt tot de eerste pg_qs.max_query_text_length bytes.
plan_id Bigint Id van het plan dat overeenkomt met deze query.
start_time tijdstempel Query's worden geaggregeerd per tijdvenster. De serverparameter pg_qs.interval_length_minutes definieert de tijdsduur van deze vensters (standaard is 15 minuten). Deze kolom komt overeen met de begintijd van het venster waarin deze vermelding is vastgelegd.
end_time tijdstempel Eindtijd die overeenkomt met het tijdvenster voor deze vermelding.
calls Bigint Aantal keren dat de query in dit tijdvenster wordt uitgevoerd. U ziet dat voor parallelle query's het aantal aanroepen voor elke uitvoering overeenkomt met 1 voor het back-endproces dat de uitvoering van de query aanstuurt, plus net zoveel andere eenheden voor elk back-endwerkrolproces dat wordt gestart om samen te werken met de parallelle vertakkingen van de uitvoeringsstructuur.
total_time dubbele precisie Totale uitvoeringstijd van query's, in milliseconden.
min_time dubbele precisie Minimale uitvoeringstijd van query's, in milliseconden.
max_time dubbele precisie Maximale uitvoeringstijd van query's, in milliseconden.
mean_time dubbele precisie Gemiddelde uitvoeringstijd van query's, in milliseconden.
stddev_time dubbele precisie Standaarddeviatie van de uitvoeringstijd van de query, in milliseconden.
rows Bigint Het totale aantal rijen dat is opgehaald of beïnvloed door de query. Merk op dat bij parallelle query's het aantal rijen voor elke uitvoering overeenkomt met het aantal rijen dat aan de client wordt geretourneerd door het back-endproces dat de uitvoering van de query aanstuurt. Daarnaast omvat dit de som van alle rijen die elk back-end werkproces, dat is gestart om samen de parallelle takken van de uitvoeringsstructuur uit te voeren, teruggeeft aan het back-endproces dat de uitvoering van de query aanstuurt.
shared_blks_hit Bigint Het totale aantal gedeelde blokcache-hits via de instructie.
shared_blks_read Bigint Het totale aantal gedeelde blokken dat door de verklaring is gelezen.
shared_blks_dirtied Bigint Het totale aantal gedeelde blokken dat door de instructie is gewijzigd.
shared_blks_written Bigint Het totale aantal gedeelde blokken dat door het statement is geschreven.
local_blks_hit bigint (een datatype voor grote gehele getallen) Totaal aantal lokale blokcache-treffers door de uitspraak.
local_blks_read Bigint Het totale aantal lokale blokken dat door de instructie is gelezen.
local_blks_dirtied Bigint Het totale aantal lokale blokken dat door de instructie wordt aangetast.
local_blks_written Bigint Het totale aantal lokale blokken dat door de instructie is geschreven.
temp_blks_read Bigint Totaal aantal tijdelijke blokken dat door de instructie wordt gelezen.
temp_blks_written Bigint Totaal aantal tijdelijke blokken dat door de instructie zijn geschreven.
blk_read_time dubbele precisie Totale tijd die de verklaring heeft besteed aan het lezen van blokken, in milliseconden (als track_io_timing is ingeschakeld, anders nul).
blk_write_time dubbele precisie Totale tijd die de instructie heeft besteed aan het schrijven van blokken, in milliseconden (als track_io_timing is ingeschakeld, anders nul).
is_system_query booleaan Bepaalt of de rol met user_id = 10 (azuresu) de query heeft uitgevoerd. Deze gebruiker heeft supergebruikersbevoegdheden en wordt gebruikt om besturingsvlakbewerkingen uit te voeren. Omdat deze service een beheerde PaaS-service is, maakt alleen Microsoft deel uit van die supergebruikerrol.
query_type Tekst Type bewerking dat wordt vertegenwoordigd door de query. Mogelijke waarden zijnunknown, select, update, , insert, delete, merge, utility, , nothing. undefined
search_path Tekst De waarde van search_path ingesteld op het moment dat de query is vastgelegd.
query_parameters Tekst Tekstweergave van een JSON-object met de waarden die worden doorgegeven aan de positionele parameters van een geparameteriseerde query. In deze kolom wordt alleen de waarde in twee gevallen ingevuld: 1) voor niet-geparameteriseerde query's. 2) Voor geparameteriseerde query's, wanneer pg_qs.parameters_capture_mode is ingesteld op capture_first_sample, en als het queryarchief de waarden voor de parameters van de query kan ophalen tijdens de uitvoering van de query.
parameters_capture_status Tekst Type bewerking dat wordt vertegenwoordigd door de query. Mogelijke waarden zijn succeeded (de query was niet geparameteriseerd of het was een geparameteriseerde query en waarden zijn succesvol vastgelegd), disabled (de query was geparameteriseerd, maar parameters zijn niet vastgelegd omdat pg_qs.parameters_capture_mode is ingesteld op capture_parameterless_only), too_long_to_capture (de query was geparameteriseerd, maar parameters zijn niet vastgelegd omdat de lengte van de resulterende JSON, die in de query_parameters kolom van deze weergave zou worden weergegeven, als te lang werd beschouwd om door de querystore te worden opgeslagen), too_many_to_capture (de query was geparameteriseerd, maar parameters zijn niet vastgelegd omdat het totale aantal parameters als te groot werd beschouwd om door de querystore te worden opgeslagen), serialization_failed (de query was geparameteriseerd, maar minstens één van de waarden die als parameter zijn doorgegeven kon niet naar tekst worden geserialiseerd).

query_store.query_texts_view

Deze weergave retourneert querytekstgegevens in Query Store. Er is één rij voor elke afzonderlijke query_sql_text.

Naam Typ Beschrijving
query_text_id Bigint ID voor de tabel query_texts
query_sql_text varchar(10000) Tekst van een representatieve verklaring. Verschillende query's met dezelfde structuur worden samen geclusterd; deze tekst is de tekst voor de eerste van de query's in het cluster.
query_type smallint Type bewerking dat wordt vertegenwoordigd door de query. In versie van PostgreSQL <= 14 zijn de mogelijke waarden 0 (onbekend), 1 (select), 2 (update), 3 (insert), 4 (delete), 5 (utility), 6 (niets). In versie van PostgreSQL >= 15 zijn 0 mogelijke waarden (onbekend), 1 (select), 2 (update), (invoegen), 34 (verwijderen), (samenvoegen), 56 (hulpprogramma), 7 (niets).

query_store.pgms_wait_sampling_view

Deze weergave retourneert wacht gebeurtenisgegevens in Query Store. Deze weergave retourneert een andere rij voor elke afzonderlijke database (db_id), gebruiker (user_id), query (query_id) en gebeurtenis (gebeurtenis).

Naam Typ Verwijzingen Beschrijving
start_time tijdstempel Query's worden geaggregeerd per tijdvenster. De serverparameter pg_qs.interval_length_minutes definieert de tijdsduur van deze vensters (standaard is 15 minuten). Deze kolom komt overeen met de begintijd van het venster waarin deze vermelding is vastgelegd.
end_time tijdstempel Eindtijd die overeenkomt met het tijdvenster voor deze vermelding.
user_id of iets dergelijks pg_authid.oid Object-id van de gebruiker die de instructie heeft uitgevoerd.
db_id of iets dergelijks pg_database.oid Object-id van database waarin de instructie is uitgevoerd.
query_id Bigint Interne hashcode, berekend uit de parseboom van de instructie.
event_type Tekst Het type gebeurtenis waarvoor de back-end wacht.
event Tekst De naam van het wachtevenement als de back-end momenteel wacht.
calls geheel getal Aantal keren dat dezelfde gebeurtenis is vastgelegd.

Opmerking

Raadpleeg de officiële documentatie van event_type voor een lijst met mogelijke waarden in de event en query_store.pgms_wait_sampling_view kolommen van de -weergave en zoek daar naar informatie die verwijst naar kolommen met dezelfde namen.

query_store.query_plans_view

Deze weergave retourneert het queryplan dat is gebruikt om een query uit te voeren. Er is één rij per afzonderlijke database-id en query-id. Query store registreert alleen queryplannen voor niet-gebruikte query's.

Naam Typ Verwijzingen Beschrijving
plan_id Bigint De hashwaarde van het genormaliseerde queryplan dat wordt geproduceerd door EXPLAIN. Het is in genormaliseerde vorm omdat het de geschatte kosten van planknooppunten en het gebruik van buffers uitsluit.
db_id of iets dergelijks pg_database.oid OID van de database waarin de instructie is uitgevoerd.
query_id Bigint Interne hashcode, berekend uit de parseboom van de instructie.
plan_text varchar(10000) Uitvoeringsplan van de instructie gegeven: kosten=false, buffers=false en formaat=text. Identieke uitvoer als de uitvoer die door EXPLAIN wordt geproduceerd.

Functies

query_store.qs_reset

Met deze functie worden alle tot nu toe verzamelde statistieken door de query store verwijderd. Hiermee worden de statistieken voor reeds gesloten tijdvensters verwijderd, die al zijn opgeslagen in tabellen op schijf. Ook worden de statistieken voor het huidige tijdvenster verwijderd, die alleen in het geheugen aanwezig zijn. Alleen leden van de serverbeheerderrol (azure_pg_admin) kunnen deze functie uitvoeren.

query_store.staging_data_reset

Met deze functie worden alle statistieken die in het geheugen zijn verzameld door de query store verwijderd. Dit betekent dat de gegevens in het geheugen, die nog niet zijn weggeschreven naar de schijftabellen die de persistentie van verzamelde gegevens voor de query store ondersteunen, worden verwijderd. Alleen leden van de serverbeheerderrol (azure_pg_admin) kunnen deze functie uitvoeren.

Modus Alleen-lezen

Wanneer een flexibele Azure Database for PostgreSQL-server zich in de modus Alleen-lezen bevindt, zoals wanneer de default_transaction_read_only parameter is ingesteld onop, of als de modus Alleen-lezen automatisch wordt ingeschakeld vanwege het bereiken van de opslagcapaciteit, worden er geen gegevens vastgelegd in het queryarchief.

Wanneer u het queryarchief inschakelt op een server met leesreplica's, wordt het queryarchief niet automatisch ingeschakeld op een van de leesreplica's. Zelfs als u het inschakelt voor een van de leesreplica's, registreert de query store de uitgevoerde query's op leesreplica's niet, omdat ze in de modus Alleen-lezen werken totdat u ze promoot tot primair.