Prestaties bewaken met Query Store
VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele 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
- Meld u aan bij Azure Portal en selecteer uw exemplaar van flexibele Azure Database for PostgreSQL-server.
- Selecteer Serverparameters in de sectie Instellingen van het menu.
- Zoek de
pg_qs.query_capture_mode
parameter. - Stel de waarde in op
top
ofall
, 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 deazure_sys
database kan worden bewaard.
Wachtsampling van querystore inschakelen
- Zoek de
pgms_wait_sampling.query_capture_mode
parameter. - 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 winkels kan worden opgevraagd met behulp van weergaven.
Toegang tot queryopslaggegevens
Queryopslaggegevens worden opgeslagen in de azure_sys
database op uw flexibele serverexemplaren van Azure Database for PostgreSQL.
De volgende query retourneert informatie over query's die zijn vastgelegd in het queryarchief:
SELECT * FROM query_store.qs_view;
En deze query retourneert informatie over wachtstatistieken:
SELECT * FROM query_store.pgms_wait_sampling_view;
Wachtquery's zoeken
Wachtgebeurtenissen combineren verschillende wachtgebeurtenissen in buckets op gelijkenis. Het queryarchief bevat het gebeurtenistype wacht, de specifieke naam van de wacht gebeurtenis 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. |
Io-wachttijden met hoge buffer | 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 | Zoek de query's die het meest geheugen verbruiken in het queryarchief. Deze query's vertragen waarschijnlijk verdere voortgang van de betrokken query's. |
Configuratieopties
Wanneer het queryarchief is ingeschakeld, worden gegevens opgeslagen in aggregatievensters met de lengte die wordt 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, wordt 5% van de opgenomen query's ongedaan gemaakt om ruimte te maken voor meer. De toewijzingen die eerst ongedaan zijn gemaakt, zijn de toewijzingen die het minste 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 (*) |
Leg het interval vast in minuten voor het queryarchief. 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 |
Maximum aantal bytes dat is opgeslagen in queryplantekst per queryarchief; langere abonnementen worden afgekapt. | 7500 |
100 - 10000 |
pg_qs.max_query_text_length |
Maximale querylengte die kan worden opgeslagen; langere query's 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 |
Instructies die moeten worden bijgehouden. | none |
none , , top all |
pg_qs.retention_period_in_days |
Bewaarperiodeperiode in dagen voor querystore. Oudere gegevens worden automatisch verwijderd. | 7 |
1 - 30 |
pg_qs.store_query_plans |
Of queryplannen moeten worden opgeslagen in het queryarchief. | off |
on , off |
pg_qs.track_utility |
Of querystore hulpprogrammaopdrachten moet bijhouden. | on |
on , off |
(*) Statische serverparameter waarvoor een server opnieuw moet worden opgestart voor een wijziging in de waarde ervan, wordt van kracht.
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 instructies de pgms_wait_sampling extensie moet volgen. |
none |
none , all |
Notitie
pg_qs.query_capture_mode
pgms_wait_sampling.query_capture_mode
vervangt . 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 .
Query's worden genormaliseerd door naar hun structuur te kijken en niets te negeren dat niet semantisch significant is, zoals letterlijke, constanten, aliassen of verschillen in hoofdletters.
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 de sql_query_text die van de query die eerst werd uitgevoerd sinds de queryopslag de opnameactiviteit begon of sinds de laatste keer dat de persistente gegevens werden verwijderd omdat de functie query_store.qs_reset is uitgevoerd.
Hoe querynormalisatie 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, zodra genormaliseerd, komt niet overeen met de vorige set query's, omdat de WHERE-component 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: volgorde waarin de expressies die in de WHERE-component worden geëvalueerd, worden omgekeerd 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-component evalueert niet meer de gelijkheid van columnOne
een letterlijke waarde, maar met het resultaat van de functie ceiling
die wordt geëvalueerd over een letterlijke waarde, wat niet semantisch equivalent is.
Weergaven
query_store.qs_view
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 | Type | Naslaginformatie | Beschrijving |
---|---|---|---|
runtime_stats_entry_id |
bigint | Id uit de runtime_stats_entries tabel. | |
user_id |
oid | pg_authid.oid | OID van de gebruiker die de instructie heeft uitgevoerd. |
db_id |
oid | pg_database.oid | OID van de database waarin de instructie is uitgevoerd. |
query_id |
bigint | Interne hashcode, berekend op basis van de parseringsstructuur 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 |
timestamp | Query's worden geaggregeerd op tijdvensters. 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 |
timestamp | 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 instructie. Voor parallelle query's komt het aantal rijen voor elke uitvoering overeen met het aantal rijen dat wordt geretourneerd aan de client door het back-endproces dat de uitvoering van de query aanstuurt, plus de som van alle rijen die elk back-endwerkproces hebben gestart om samen te werken aan het uitvoeren van de parallelle vertakkingen van de uitvoeringsstructuur, terug naar het back-endproces dat de uitvoering van de query aanstuurt. | |
shared_blks_hit |
bigint | Het totale aantal gedeelde blokcachetreffers door de instructie. | |
shared_blks_read |
bigint | Het totale aantal gedeelde blokken dat door de instructie is gelezen. | |
shared_blks_dirtied |
bigint | Het totale aantal gedeelde blokken dat door de instructie wordt veroorzaakt. | |
shared_blks_written |
bigint | Het totale aantal gedeelde blokken dat door de instructie is geschreven. | |
local_blks_hit |
bigint | Totaal aantal lokale blokcachetreffers door de instructie. | |
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 veroorzaakt. | |
local_blks_written |
bigint | Totaal 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 is geschreven. | |
blk_read_time |
dubbele precisie | Totale tijd die de instructie heeft besteed aan leesblokken, 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 |
boolean | 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 |
sms verzenden | Type bewerking dat wordt vertegenwoordigd door de query. Mogelijke waarden zijnunknown , select , update , , insert , delete , merge , utility , , nothing . undefined |
|
search_path |
sms verzenden | De waarde van search_path ingesteld op het moment dat de query is vastgelegd. | |
query_parameters |
sms verzenden | 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 deze is ingesteld capture_first_sample op en als het queryarchief de waarden voor de parameters van de query tijdens de uitvoering kan ophalen. |
|
parameters_capture_status |
sms verzenden | Type bewerking dat wordt vertegenwoordigd door de query. Mogelijke waarden zijn (de query is succeeded niet geparameteriseerd of het was een geparameteriseerde query en waarden zijn vastgelegd), disabled (query is geparameteriseerd, maar parameters zijn niet vastgelegd omdat pg_qs.parameters_capture_mode deze is ingesteld capture_parameterless_only op ), too_long_to_capture (query is 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, te lang werd beschouwd voor het opslaan van query's), too_many_to_capture (query is geparameteriseerd, maar parameters zijn niet vastgelegd omdat het totale aantal parameters als overmatig werd beschouwd voor het opslaan van query's), serialization_failed (query is geparameteriseerd, maar ten minste één van de waarden die als parameter zijn doorgegeven, kan niet worden geserialiseerd naar tekst). |
query_store.query_texts_view
Deze weergave retourneert querytekstgegevens in Query Store. Er is één rij voor elke afzonderlijke query_sql_text.
Naam | Type | Beschrijving |
---|---|---|
query_text_id |
bigint | Id voor de query_texts tabel |
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 0 mogelijke waarden (onbekend), 1 (select), 2 (update), (insert), 3 4 (delete), (utility), 5 6 (niets). In versie van PostgreSQL >= 15 zijn 0 mogelijke waarden (onbekend), 1 (select), 2 (update), (invoegen), 3 4 (verwijderen), (samenvoegen), 5 6 (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 | Type | Naslaginformatie | Beschrijving |
---|---|---|---|
start_time |
timestamp | Query's worden geaggregeerd op tijdvensters. 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 |
timestamp | Eindtijd die overeenkomt met het tijdvenster voor deze vermelding. | |
user_id |
oid | pg_authid.oid | Object-id van de gebruiker die de instructie heeft uitgevoerd. |
db_id |
oid | pg_database.oid | Object-id van database waarin de instructie is uitgevoerd. |
query_id |
bigint | Interne hashcode, berekend op basis van de parseringsstructuur van de instructie. | |
event_type |
sms verzenden | Het type gebeurtenis waarvoor de back-end wacht. | |
event |
sms verzenden | De naam van de wacht gebeurtenis als de back-end momenteel wacht. | |
calls |
geheel getal | Aantal keren dat dezelfde gebeurtenis is vastgelegd. |
Notitie
Raadpleeg de officiële documentatie van pg_stat_activity voor een lijst met mogelijke waarden in de event_type
weergave en event
query_store.pgms_wait_sampling_view
zoek naar de 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 | Type | Naslaginformatie | 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 |
oid | pg_database.oid | OID van de database waarin de instructie is uitgevoerd. |
query_id |
bigint | Interne hashcode, berekend op basis van de parseringsstructuur van de instructie. | |
plan_text |
varchar(10000) | Uitvoeringsplan van de instructie opgegeven kosten=false, buffers=false en format=text. Identieke uitvoer als de uitvoer die door EXPLAIN wordt geproduceerd. |
Functies
query_store.qs_reset
Met deze functie worden alle statistieken verwijderd die tot nu toe zijn verzameld door het queryarchief. Hiermee worden de statistieken voor reeds gesloten tijdvensters verwijderd, die al zijn persistent voor 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 het queryarchief verwijderd (dat wil gezegd, de gegevens in het geheugen die nog niet zijn leeggemaakt naar de schijftabellen die persistentie van verzamelde gegevens voor het queryarchief ondersteunen). Alleen leden van de serverbeheerderrol (azure_pg_admin
) kunnen deze functie uitvoeren.
Modus Alleen-lezen
Wanneer een exemplaar van Azure Database for PostgreSQL Flexible Server zich in de modus Alleen-lezen bevindt, zoals wanneer de default_transaction_read_only
parameter is ingesteld on
op, of als de modus Alleen-lezen automatisch wordt ingeschakeld vanwege het bereiken van de opslagcapaciteit, worden er geen gegevens vastgelegd in het queryarchief.
Als 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 deze inschakelt op een van de leesreplica's, worden de query's die worden uitgevoerd op leesreplica's niet opgeslagen in de modus Alleen-lezen, omdat ze worden uitgevoerd in de modus Alleen-lezen totdat u ze promoveert naar primair.
Deel uw suggesties en bugs met het productteam van Azure Database for PostgreSQL.