Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么PostgreSQL为当前正在执行的命令的文本保留固定数量的内存?_Postgresql_Memory - Fatal编程技术网

为什么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
,就可以确定所需的最大内存