![]() |
1
1
Postgres也可以缓存计划,这是基于每个会话的,一旦会话结束,缓存的计划就会被丢弃。这在优化/分析时可能很棘手,但通常不那么重要,除非您正在执行的查询非常复杂和/或有很多重复的查询。 文档很好地解释了这些细节。我们可以查询pg_prepared_语句来查看缓存的内容。请注意,它在会话之间不可用,并且仅对当前会话可见。 当用户使用Greenplum数据库启动会话并发出查询时,系统会在每个段上创建工作进程组或“帮派”来完成工作。工作完成后,段工作进程将被销毁,但gp_cached_segworkers_threshold参数设置的缓存号除外。 较低的设置可以节省段主机上的系统资源,但较高的设置可以提高希望连续发出许多复杂查询的高级用户的性能。 另请参阅gp_max_local_distributed_cache。 显然,缓存越多,可用于其他连接和查询的内存就越少。如果你只是托管几个运行并发查询的超级用户,也许没什么大不了的。。。但您可能需要相应地调整您的gp-vmem-u-protect-u限制。 澄清: 段资源在gp_vmem_idle_resource_超时后释放。 只有主会话将保留,直到TCP连接断开。 |