【发布时间】:2019-10-09 05:06:39
【问题描述】:
pgjdbc 中的prepareThreshold 有如下定义:
在切换到使用服务器端准备好的语句之前,确定所需的 PreparedStatement 执行次数。默认值为五个,这意味着在第五次执行相同的 PreparedStatement 对象时开始使用服务器端准备好的语句。有关服务器端准备语句的更多信息,请参见“服务器准备语句”部分。
我想知道这实际上给我们带来了什么好处?大多数网络服务器几个月都不会重新启动,所以所有数据库查询最终都会发送超过 5 次,所以给它一周左右的时间,所有准备好的语句都将存储在服务器上,不是吗?这仅仅是为了使桌面应用程序受益吗?还是我错过了一些东西,例如“一段时间内的 5 个阈值”?
【问题讨论】:
-
该设置是针对每个连接的,通常使用合理的连接池配置,单个连接将无法存活数月(甚至数小时)。而当不断发布新功能时,应用程序本身的运行时间可能是数小时或数天,而不是数月。
-
我明白了...所以我认为的好处就是不会用不经常使用的准备好的语句使服务器膨胀,对吗?是不是这里有别的东西?
标签: postgresql jdbc prepared-statement pg-jdbc