sql >> Database >  >> RDS >> PostgreSQL

Hoe WORK_MEM van externe PostgreSQL-verbindingen te tonen?

U kunt in het proces inbreken met een debugger op het niveau van het besturingssysteem.

Ik zal laten zien hoe het op Linux te doen:

$ psql "dbname=test options='-c work_mem=256MB' application_name=test"
psql (9.6.1)
Type "help" for help.

test=>  SELECT pg_backend_pid();
 pg_backend_pid
----------------
          21089
(1 row)

Nu kan ik inbreken in het proces op de servermachine:

$ gdb /path/to/postgres-9.6.1/bin/postgres 21089
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-90.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
...
(gdb) print work_mem
$1 = 262144
(gdb) detach
Detaching from program: /path/to/postgres-9.6.1/bin/postgres, process 21089
(gdb) quit

U zou dit niet willen doen op een productiesysteem, aangezien de backend wordt geblokkeerd terwijl u deze aan het debuggen bent.




  1. Hoe tonen forums u ongelezen onderwerpen?

  2. Rang berekenen in PHP/MySQL

  3. Terug-knop voor een enkele pagina-website

  4. Upgraden van SonarQube van 4.5.2 naar 5.0 . mislukt