sql >> Database >  >> RDS >> PostgreSQL

Is het mogelijk om een ​​geschiedenis te krijgen van vragen die in postgres zijn gemaakt?

Er is geen geschiedenis in de database zelf, als je psql gebruikt, kun je "\s" gebruiken om je commandogeschiedenis daar te zien.

U kunt toekomstige query's of andere soorten bewerkingen in de logbestanden krijgen door log_statement in het postgresql.conf-bestand. Wat u waarschijnlijk wilt, is log_min_duration_statement , die, als u deze instelt op 0, alle zoekopdrachten en hun duur in de logboeken registreert. Dat kan handig zijn zodra uw apps live gaan. Als u dat instelt op een hogere waarde, ziet u alleen de langlopende zoekopdrachten die nuttig kunnen zijn voor optimalisatie (u kunt EXPLAIN ANALYZE uitvoeren op de zoekopdrachten die u daar vindt om erachter te komen waarom ze zijn traag).

Een ander handig ding om te weten op dit gebied is dat als je psql uitvoert en het "\timing" vertelt, het zal laten zien hoe lang elke instructie daarna duurt. Dus als je een sql-bestand hebt dat er als volgt uitziet:

\timing
select 1;

Je kunt het uitvoeren met de juiste vlaggen en elke instructie zien, afgewisseld met hoe lang het duurde. Hier is hoe en hoe het resultaat eruit ziet:

$ psql -ef test.sql 
Timing is on.
select 1;
 ?column? 
----------
        1
(1 row)

Time: 1.196 ms

Dit is handig omdat u geen database-supergebruiker hoeft te zijn om het te gebruiken, in tegenstelling tot het wijzigen van het configuratiebestand, en het is gemakkelijker te gebruiken als u nieuwe code ontwikkelt en deze wilt testen.



  1. Gelijktijdige gebruikerssessies beperken voor een specifieke login in SQL Server

  2. Een tabblad specificeren in een postgres front-end KOPIE

  3. PostgreSQL Logische Replicatie Gotchas

  4. Fout bij het converteren van XML van een CLOB-kolom naar XMLType-kolom