Statistieken begrijpen
Wanneer een query wordt uitgevoerd, moet er een plan worden gemaakt om te bepalen hoe de gegevens moeten worden geopend. Als een SELECT-query bijvoorbeeld elke rij retourneert, is het niet handig om een index te gebruiken en is het efficiƫnter om de hele tabel te scannen. In dit scenario is het eenvoudig om de query te plannen, maar de meeste queryplannen zijn niet zo eenvoudig om op te lossen.
Stel dat u een scenario uitvoert waarin u een query uitvoert die elke order tussen $ 10,00 en $ 20,00 heeft gezocht. In eerste instantie weten we niet of de query alle gegevens in de tabel retourneert of slechts een kleine subset. Dit onbekende maakt het moeilijk om de querystrategie te plannen totdat de gegevens worden weergegeven. Als we weten dat de tabel orders bevat met een inkoopprijs tussen $ 1,00 en $ 800,00, kan een index worden gebruikt om te zoeken naar een kleine subset van de gegevens. Er is echter nog steeds onvoldoende informatie om het juiste queryplan te genereren. In dit voorbeeld is 95% van de orders tussen $ 1,00 en $ 800,00, 95% van de orders tussen $ 10,00 en $ 20,00 en een scan van de gegevens is eigenlijk het meest effectieve plan.
Met scenario's zoals het vorige voorbeeld heeft PostgreSQL gedetailleerde statistieken nodig om het optimale queryplan te kunnen gebruiken.
Voor het bewaken van plannings- en uitvoeringsstatistieken is er een PostgreSQL-extensie met de naam pg_stat_statements. pg_stat_statements is standaard ingeschakeld in Azure Database for PostgreSQL en staat leden van de pg_read_all_stats rol toe om statistieken op te vragen met behulp van meerdere pg_stat weergaven. De volgende query retourneert queryactiviteit met behulp van de pg_stat_activity weergave:
SELECT * FROM pg_stat_activity;
Pg_stat_statements uitschakelen
Als uw query's uniek zijn en u dezelfde query niet periodiek herhaalt, zijn historische querygegevens minder nuttig. Als u de pg_stat weergaven niet gebruikt, bieden ze ook geen voordeel. Er is een overhead voor het onderhouden van de pg_stat_statements, die maximaal 50% kan zijn en u kunt het bijhouden van pg_stat_statements in deze scenario's uitschakelen.
Voer de volgende stappen uit om het bijhouden van pg_stat_statements uit te schakelen:
Ga naar Azure Portal en selecteer uw Azure Database for PostgreSQL-server.
Selecteer Serverparameters en navigeer naar de instelling pg_stat_statements.track .
Als u het bijhouden wilt uitschakelen, selecteert u GEEN.
Selecteer ALLES voor meer exacte tracering.
De standaardinstelling is TOP.
Selecteer Opslaan.