sql >> Databáze >  >> RDS >> PostgreSQL

Je možné získat historii dotazů provedených v postgresu

V samotné databázi není žádná historie, pokud používáte psql, můžete použít "\s" k zobrazení historie příkazů.

Do souborů protokolu můžete získat budoucí dotazy nebo jiné typy operací nastavením prohlášení_protokolu v souboru postgresql.conf. Místo toho pravděpodobně chcete log_min_duration_statement , který, pokud jej nastavíte na 0, bude zaznamenávat všechny dotazy a jejich trvání do protokolů. To může být užitečné, jakmile budou vaše aplikace spuštěny. Pokud tuto hodnotu nastavíte na vyšší hodnotu, uvidíte pouze dlouho běžící dotazy, které mohou být užitečné pro optimalizaci (můžete spustit EXPLAIN ANALYZE na dotazy, které tam najdete, abyste zjistili, proč 'jsou pomalé).

Další užitečnou věcí v této oblasti je, že když spustíte psql a řeknete mu "\timing", ukáže se, jak dlouho trvá každý příkaz poté. Pokud tedy máte soubor sql, který vypadá takto:

\timing
select 1;

Můžete jej spustit se správnými příznaky a vidět každý příkaz proložený s tím, jak dlouho to trvalo. Zde je návod, jak a jak vypadá výsledek:

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

Time: 1.196 ms

To je užitečné, protože nemusíte být superuživatelem databáze, abyste to mohli používat, na rozdíl od změny konfiguračního souboru, a je to jednodušší, pokud vyvíjíte nový kód a chcete ho otestovat.



  1. příkaz delete nemazání záznamů

  2. Získejte sadu výsledků z uložené procedury Oracle

  3. Jak mohu definovat typ v oracle11g, který odkazuje na kolekci tohoto typu?

  4. Jak provést autentizaci pomocí SOAP?