sql >> Databasteknik >  >> RDS >> PostgreSQL

Är det möjligt att få en historik över frågor gjorda i postgres

Det finns ingen historik i själva databasen, om du använder psql kan du använda "\s" för att se din kommandohistorik där.

Du kan få framtida frågor eller andra typer av operationer i loggfilerna genom att ställa in log_statement i filen postgresql.conf. Det du förmodligen vill ha istället är log_min_duration_statement , som om du ställer in den till 0 kommer att logga alla frågor och deras varaktighet i loggarna. Det kan vara användbart när dina appar går live, om du ställer in det till ett högre värde kommer du bara att se de långvariga frågorna som kan vara till hjälp för optimering (du kan köra EXPLAIN ANALYZE på frågorna du hittar där för att ta reda på varför de är långsam).

En annan praktisk sak att veta i det här området är att om du kör psql och säger till det "\timing", kommer det att visa hur lång tid varje uttalande efter det tar. Så om du har en sql-fil som ser ut så här:

\timing
select 1;

Du kan köra det med rätt flaggor och se varje påstående interfolierat med hur lång tid det tog. Så här ser resultatet ut och hur det ser ut:

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

Time: 1.196 ms

Detta är praktiskt eftersom du inte behöver vara databassuperanvändare för att använda det, till skillnad från att ändra konfigurationsfilen, och det är lättare att använda om du utvecklar ny kod och vill testa den.



  1. SLIPP TABELL OM FINNS i SQLite

  2. SQL-uppdateringsfråga med joins

  3. Hur man listar alla vyer i en PostgreSQL-databas

  4. Varför returnerar berörda rader 0 när uppdateringen/raderingen lyckades?