设置PostgreSQL记录所有语句对性能的影响


8

Windows 7 64位上的PostgreSQL 9.2.2。

设置log_statementpostgresql.conf文件中指定的语句记录哪些(无,DDL,修改数据,或全部)。设置在多大程度上log_statement = 'all'降低性能?我已经读到这会显着降低性能,但是这些主张来自于较早的文章,所以相对于我,我应该期望多少性能损失log_statement = 'none'

Answers:


12

像几乎所有其他内容一样,它取决于您的硬件,配置和工作量。

如果您只运行一些昂贵的语句,则不会有太大变化。如果您正在运行许多微小的简单语句,它将产生更大的变化。

如果您的日志与数据库位于同一文件系统上,甚至与磁盘位于同一磁盘上,则与将日志存储在单独的磁盘上相比,日志记录会产生更大的影响。即使未明确记录日志fsync()并按顺序写入日志,它们仍在与主数据库争夺I / O。

更重要的是,某些文件系统(特别是ext3)将在所有文件被写入时刷新所有数据fsync(),因此日志写入变得比顺序I / O更接近随机I / O,并且减慢了每次提交的速度。IIRC,这在ext4或xfs上不是问题。

它还将取决于您是否启用了语句计时,正在使用的日志记录方法等等。

最好的选择是对您的实际工作量进行模拟并查看基准。


在同一磁盘上作为纯文本文件登录到stderr。语句计时已禁用。日志收集器已启用。该服务器有时会遭受频繁,中等复杂的查询。
bwDraco

@DragonLord:语句时间有很大的不同。用于CPU负载。
Erwin Brandstetter,2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.