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

Jak wyświetlić WORK_MEM zewnętrznych połączeń PostgreSQL?

Możesz włamać się do procesu za pomocą debuggera na poziomie systemu operacyjnego.

Pokażę, jak to zrobić w Linuksie:

$ 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)

Teraz mogę włamać się do procesu na serwerze:

$ 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

Nie chciałbyś tego robić w systemie produkcyjnym, ponieważ backend jest blokowany podczas debugowania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytania w pg_stat_activity są obcinane?

  2. Oracle's OUTER JOIN (+) na łańcuchu - Migration PostgreSQL

  3. Alias ​​odniesienia w klauzuli WHERE

  4. Data zapisu PostgreSQL w 'Lokalnej strefie czasowej', podczas gdy ustawiam ją na 'UTC' za pomocą Django

  5. Całkowicie odinstalować PostgreSQL 9.0.4 z Mac OSX Lion?