Good afternoon.

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Good afternoon.

Kenia Vergara
Good afternoon.
I need to know the commands to display the execution time, CPU usage and memory usage, but through the Postgres console.Thank you.
Reply | Threaded
Open this post in threaded view
|

rusage (Re: Good afternoon.)

Justin Pryzby
Hi,

On Wed, Mar 06, 2019 at 04:09:46PM -0400, Kenia Vergara wrote:
> Good afternoon.
> I need to know the commands to display the execution time, CPU usage and
> memory usage, but through the Postgres console.Thank you.

Does this do what you want ?  Note that the "QUERY STATISTICS" are log output,
and not a part of the sql result.

$ psql postgres -Atc "SET client_min_messages=log; SET log_statement_stats=on" -c 'explain analyze SELECT max(i) FROM generate_series(1,999999)i'
SET
LOG:  QUERY STATISTICS
DETAIL:  ! system usage stats:
!       0.625402 s user, 0.059799 s system, 0.687496 s elapsed
!       [0.629882 s user, 0.059799 s system total]
!       10672 kB max resident size
!       0/27344 [0/27344] filesystem blocks in/out
!       0/1378 [0/2365] page faults/reclaims, 0 [0] swaps
!       0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
!       0/167 [2/167] voluntary/involuntary context switches
Aggregate  (cost=12.50..12.51 rows=1 width=4) (actual time=680.155..680.161 rows=1 loops=1)
  ->  Function Scan on generate_series i  (cost=0.00..10.00 rows=1000 width=4) (actual time=253.512..497.462 rows=999999 loops=1)
Planning Time: 0.227 ms
Execution Time: 686.200 ms


Justin

Reply | Threaded
Open this post in threaded view
|

Re: rusage (Re: Good afternoon.)

Julien Rouhaud
On Wed, Mar 6, 2019 at 11:49 PM Justin Pryzby <[hidden email]> wrote:

>
> Hi,
>
> On Wed, Mar 06, 2019 at 04:09:46PM -0400, Kenia Vergara wrote:
> > Good afternoon.
> > I need to know the commands to display the execution time, CPU usage and
> > memory usage, but through the Postgres console.Thank you.
>
> Does this do what you want ?  Note that the "QUERY STATISTICS" are log output,
> and not a part of the sql result.
>
> $ psql postgres -Atc "SET client_min_messages=log; SET log_statement_stats=on" -c 'explain analyze SELECT max(i) FROM generate_series(1,999999)i'
> SET
> LOG:  QUERY STATISTICS
> DETAIL:  ! system usage stats:
> !       0.625402 s user, 0.059799 s system, 0.687496 s elapsed
> !       [0.629882 s user, 0.059799 s system total]
> !       10672 kB max resident size
> !       0/27344 [0/27344] filesystem blocks in/out
> !       0/1378 [0/2365] page faults/reclaims, 0 [0] swaps
> !       0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
> !       0/167 [2/167] voluntary/involuntary context switches
> Aggregate  (cost=12.50..12.51 rows=1 width=4) (actual time=680.155..680.161 rows=1 loops=1)
>   ->  Function Scan on generate_series i  (cost=0.00..10.00 rows=1000 width=4) (actual time=253.512..497.462 rows=999999 loops=1)
> Planning Time: 0.227 ms
> Execution Time: 686.200 ms

You could also consider using pg_stat_kcache
(https://github.com/powa-team/pg_stat_kcache/) extension, which gather
most of those metrics and accumulate them per (queryid, dbid, userid).
It requires more configuration, depends on pg_stat_statements
extension, and need a postgres restart to activate it though.