调试慢Postgresql 9.3 COMMIT

时间:2016-12-10 23:13:50

标签: postgresql

启用慢速查询日志记录后,我们发现很多UPDATE在我们的生产数据库上需要花费多秒才能完成。在调查时,这些通常是简单的事务:获取行COMMITSELECT。这些特定事务中的UPDATE$dimensions = array( array('Name' => 'InstanceId', 'Value' => 'i-0c0f546e4d1ef25e1'), ); $memoryResult = $cloudWatchClient->getMetricStatistics(array( 'Namespace' => 'System/Linux', 'MetricName' => 'MemoryUtilization', 'Dimensions' => $dimensions, 'StartTime' => strtotime('-5 minutes'), 'EndTime' => strtotime('now'), 'Period' => 60, 'Statistics' => array('Average'), )); var_dump($memoryResult); 未被记录为慢速。有什么我们可以做的,或者我们可以使用的工具,找出这些缓慢提交的原因?我们正在运行SSD,并且正在流向一个奴隶,如果这会产生影响。

1 个答案:

答案 0 :(得分:-1)

Postgres提交是同步的。这意味着他们将等待WAL写入完成,然后再转移到下一个。您可以调整配置文件中的WAL设置以进行调整。

您可以使用配置文件中的synchronous_commit将提交级别设置为会话/用户级别或数据库范围的异步。

在数据库方面。

对表格进行抽真空以更新统计信息。这将消除死元组,因为你的表演更新,会有很多。

VACUUM ANALYZE