pg_catalog

pg_stat_user_functions ファンクションの利用状況を調べる

ユーザ作成したファンクションの実行統計情報(呼び出し回数と所要時間)を確認できます。現在のトランザクション中に呼び出されたものだけを確認するにはpg_stat_xact_user_functionsを使用するらしいのですが、こちらはいま一つ解せないところがあるので今後もう少し検証必要そう、、

現状の設定を確認する
select current_setting('track_functions');
-- デフォルトでは値取得する設定にはなっていません
--
myposdb=# select current_setting('track_functions');
 current_setting
-----------------
 none
(1 行)

myposdb=#
利用開始を設定する(postgresql.confを直接書き換えてもよいです)

以下alter文で利用可能状態にします。(PostgreSQLの再起動をしないと反映しません)

ALTER SYSTEM SET track_functions TO 'all';
ユーザファンクションの利用状況を確認する
select * from pg_stat_user_functions;
統計情報をクリア(リセット)する
select pg_stat_reset();

-- PostgreSQLの再起動後に設定の反映を確認する
--
myposdb=# select current_setting('track_functions');
 current_setting
-----------------
 all
(1 行)

myposdb=# select * from pg_stat_user_functions;
 funcid | schemaname |     funcname     | calls | total_time | self_time
--------+------------+------------------+-------+------------+-----------
  26494 | public     | current_profile  |     2 |      4.028 |     4.028
  26495 | public     | current_profiles |     1 |      5.707 |     5.707
(2 行)


--

-- 統計情報をクリアする
myposdb=# select pg_stat_reset();
 pg_stat_reset
---------------

(1 行)


myposdb=# select * from pg_stat_user_functions;
 funcid | schemaname | funcname | calls | total_time | self_time
--------+------------+----------+-------+------------+-----------
(0 行)


myposdb=#
スポンサーリンク
コピペで使う