PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy można uzyskać historię zapytań wykonanych w postgresie?

W samej bazie danych nie ma historii, jeśli używasz psql, możesz użyć "\s", aby zobaczyć tam swoją historię poleceń.

Możesz pobrać przyszłe zapytania lub inne typy operacji do plików dziennika, ustawiając log_statement w pliku postgresql.conf. Zamiast tego prawdopodobnie chcesz log_min_duration_statement , co jeśli ustawisz na 0, będzie rejestrować wszystkie zapytania i czasy ich trwania w logach. Może to być pomocne, gdy Twoje aplikacje zostaną uruchomione, jeśli ustawisz ją na wyższą wartość, zobaczysz tylko długo działające zapytania, które mogą być pomocne w optymalizacji (możesz uruchomić ANALIZĘ WYJAŚNIJ dla zapytań, które tam znajdziesz, aby dowiedzieć się, dlaczego są wolne).

Kolejną przydatną rzeczą w tym obszarze jest to, że jeśli uruchomisz psql i powiesz mu "\timing", pokaże on, ile czasu zajmuje każda następna instrukcja. Więc jeśli masz plik sql, który wygląda tak:

\timing
select 1;

Możesz uruchomić go z odpowiednimi flagami i zobaczyć każdą instrukcję przeplataną czasem trwania. Oto jak i jak wygląda wynik:

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

Time: 1.196 ms

Jest to przydatne, ponieważ nie musisz być superużytkownikiem bazy danych, aby z niego korzystać, w przeciwieństwie do zmiany pliku konfiguracyjnego, i jest łatwiejszy w użyciu, jeśli tworzysz nowy kod i chcesz go przetestować.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:Błąd podczas używania GROUP BY i ORDER (w heroku)

  2. Jak zmienić wynik zapytań SQL z LIMIT w każdym zapytaniu?

  3. Spłaszczanie tablicy JSONB w postgresie

  4. Jak wyświetlić informacje o wszystkich plikach Alfresco (Postgres SQL)?

  5. Zmienne dla identyfikatorów wewnątrz IF EXISTS w funkcji plpgsql