sql >> Database >  >> RDS >> PostgreSQL

Langzame query-log inschakelen in PostgreSQL

Met PostgreSQL kunnen langzame query's worden vastgelegd in een logbestand of tabel. Door deze logboeken te ontleden, kunt u eenvoudig bepalen welke query's uw database vertragen. Hier zijn de stappen om langzame querylog in PostgreSQL in te schakelen. Je kunt ze ook gebruiken om langzame query-log in RDS, Redshift en andere PostgreSQL-databases in te schakelen.


Hoe trage query-log in PostgreSQL in te schakelen

U kunt trage zoekopdrachten in PostgreSQL herkennen door eenvoudig een paar instellingen in postgresql.conf aan te passen bestand


1. Vind locatie van postgresql.conf

Open terminal en voer de volgende opdracht uit om de locatie van het postgresql.conf-bestand voor uw database te vinden.

$ find / -name postgresql.conf
/etc/postgresql/9.1/main/postgresql.conf

Bonus lezen:PostgreSQL gematerialiseerde weergave

2. Open postgresql.conf

Voer de volgende opdracht uit om het bestand postgresql.conf in een teksteditor te openen

$ vi /etc/postgresql/9.1/main/postgresql.conf

Bonus lezen:hoe u de laatste rij per groep kunt krijgen in PostgreSQL

3. Langzame querylog inschakelen in PostgreSQL

Zoek naar de volgende regel

#log_min_duration_statement = -1

Uncommentaar door # aan het begin te verwijderen. Vervang ook -1 door een runtime-drempelwaarde voor query's in milliseconden. Als u bijvoorbeeld zoekopdrachten wilt loggen die langer dan 1 seconde duren, vervangt u -1 door 1000

log_min_duration_statement = 1000

Sla het bestand op en sluit het

Zoek ook naar de volgende regel,

logging_collector = on

Zorg ervoor dat logging_collector is ingesteld op aan .

Bonus lezen:Histogram maken in PostgreSQL

4. Zoek log met trage zoekopdrachten

U vindt ook een andere variabele in postgresql.conf

log_directory = 'pg_log'

Dit geeft aan dat het PostgreSQL-logbestand zich bevindt op /var/lib/pgsql/data/pg_log/



5. Start de PostgreSQL-database opnieuw

Voer de volgende opdracht uit om PostgreSQL te herstarten

Ubuntu/Debian

$ sudo systemctl restart postgresql

CentOS/Redhat

# /etc/init.d/postgresql restart

Hopelijk helpt het bovenstaande artikel u bij het loggen van langzame zoekopdrachten in PostgreSQL.

  1. Hoe kan ik ervoor zorgen dat mijn Java-toepassing zich bij verbinding met Oracle identificeert?

  2. Hoe kolommen in CSV-bestand over te slaan bij het importeren in MySQL-tabel met behulp van LOAD DATA INFILE?

  3. Hoe krijg ik een Query Execution Plan in SQL Server?

  4. Tools om in teamverband te werken met opgeslagen procedures in Oracle?