全部,
我试图了解PostgreSQL服务器设置log_duration的影响。将其设置为ON会导致任何性能问题。我试图用Postgres后端设置融合服务器。当此值设置为ON时,服务的响应很慢,而当我将其设置为OFF时,它的响应很快。
log_min_duration_statement设置为-1 =>不应记录任何查询文本。
查询:
有人可以帮我了解一下影响吗?
参考此,如果您需要更多信息,请告诉我:
这允许记录语句样本,而不会引起过多日志流量(可能会影响性能)。这在以下情况下很有用使用大量简短查询来分析工作负载。
使用两个新的GUC参数配置采样:
log_min_duration_sample-所需的最小语句持续时间
log_statement_sample_rate-采样率(0.0-1.0)
仅持续时间超过log_min_duration_sample的语句为考虑取样。要启用采样,这两个GUC都必须正确设置。
现有的log_min_duration_statement GUC具有更高的优先级,即持续时间超过log_min_duration_statement的语句将是始终记录日志,而无视样本的配置方式。这个表示仅配置
log_min_duration_sample 实际上是对语句进行采样,而不是记录所有内容。
最好的了解方法是测量它。
对于简单的仅选择查询,例如pgbench -S
,影响很大。关闭时,每秒可获得22,000个选择,打开时,每秒可获得13,000个选择。对于更复杂的选择查询或DML,百分比影响将小得多。
格式化和打印日志消息以及IPC到日志收集器需要花费时间。 pg_stat_statements并非针对每个查询都这样做,它只会增加一些计数器。
当然log_duration记录到日志文件(或管道),否则打开它就没有任何意义。该位置是高度可配置的,请在postgresql.conf中查找诸如log_destination,log_directory和log_filename之类的内容。 (但是,如果您不知道在哪里可以找到日志,为什么还要首先打扰打开该日志?)