如何查看PostgreSQL中指定函数的work_mem本地配置参数值?
查看PostgreSQL函数的本地work_mem配置值
要查看你为get_passengers_and_flights函数设置的本地work_mem值,需要查询PostgreSQL的系统目录pg_proc——函数的本地配置参数存储在该表的proconfig字段(数组类型)中。
方法1:查看函数的所有本地配置
执行以下SQL语句,会列出该函数的所有自定义配置项:
SELECT proname, unnest(proconfig) AS config_setting FROM pg_proc WHERE proname = 'get_passengers_and_flights';
unnest(proconfig)会将数组格式的配置展开为单行记录,你能直接看到类似work_mem=32MB的配置项。
方法2:精准筛选work_mem配置
如果只想查看work_mem的设置,可以添加过滤条件:
SELECT proname, (SELECT config_item FROM unnest(proconfig) AS config_item WHERE config_item LIKE 'work_mem=%') AS work_mem_setting FROM pg_proc WHERE proname = 'get_passengers_and_flights';
为什么current_setting('work_mem')查不到?
current_setting()返回的是当前会话的全局或会话级参数值,而函数的本地配置仅在函数执行期间生效,不会改变会话级的参数值,因此用这个语句无法看到函数的自定义配置。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

