为什么PostgreSQL为当前正在执行的命令的文本保留固定数量的内存?
摘自:为什么PostgreSQL为当前正在执行的命令的文本保留固定数量的内存?,postgresql,memory,Postgresql,Memory,摘自: track\u activity\u query\u size(整数)为pg\u stat\u activity.query字段指定为存储每个活动会话当前执行的命令文本而保留的内存量。如果指定此值时没有单位,则将其视为字节。默认值为1024字节。此参数只能在服务器启动时设置 据我所知,这意味着,例如,如果将track\u activity\u query\u size设置为10kB,则无论文本的实际大小如何,每个会话都将为当前执行的命令的文本消耗10kB 为什么要这样实施?动态分配实际需
track\u activity\u query\u size(整数)
为pg\u stat\u activity.query字段指定为存储每个活动会话当前执行的命令文本而保留的内存量。如果指定此值时没有单位,则将其视为字节。默认值为1024字节。此参数只能在服务器启动时设置
据我所知,这意味着,例如,如果将track\u activity\u query\u size
设置为10kB,则无论文本的实际大小如何,每个会话都将为当前执行的命令的文本消耗10kB
为什么要这样实施?动态分配实际需要的数量是否太慢?此参数确定在包含查询文本的共享内存结构中分配了多少内存 PostgreSQL在服务器启动时分配此类共享内存区域,以后不会更改其大小。这是为了使代码(必须在许多操作系统上工作)简单而健壮。一旦知道
max\u connections
和track\u activity\u query\u size
,就可以确定所需的最大内存