sql >> データベース >  >> RDS >> PostgreSQL

外部PostgreSQL接続のWORK_MEMを表示するにはどうすればよいですか?

    オペレーティングシステムレベルのデバッガーを使用してプロセスに侵入できます。

    Linuxでそれを行う方法を紹介します:

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

    これで、サーバーマシンのプロセスに侵入できます:

    $ 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
    

    デバッグ中にバックエンドがブロックされるため、本番システムではこれを実行しないでください。




    1. パッケージ仕様で関数を宣言せずに、パッケージ内のSQLクエリで関数を呼び出すとエラーが発生する

    2. ユーザーIDのリストを保存するための最良の方法

    3. SQL Server(T-SQL)でユーザーのデフォルトのデータベースメールプロファイルを変更する方法

    4. SQL Server Management Studio(SSMS)でのスタートアップ環境の構成-SQL Server/TSQLチュートリアルパート7