Re: Parsing VACUUM VERBOSE - Mailing list pgsql-performance

From Y Sidhu
Subject Re: Parsing VACUUM VERBOSE
Date
Msg-id b09064f30706141434t530844a3x5ad09a1f7ef2aac7@mail.gmail.com
Whole thread Raw
In response to Re: Parsing VACUUM VERBOSE  ("Guillaume Smet" <guillaume.smet@gmail.com>)
List pgsql-performance


On 6/14/07, Guillaume Smet <guillaume.smet@gmail.com> wrote:
On 6/14/07, Y Sidhu <ysidhu@gmail.com> wrote:
> Can anyone share what value they have set log_min_duration_statement to?

It's OT but we use different values for different databases and needs.

On a very loaded database with a lot of complex queries (lots of join
on big tables, proximity queries, full text queries), we use 100 ms.
It logs ~ 300 000 queries. It allows us to detect big regressions or
new queries which are very slow.

On another database where I want to track transaction leaks, I'm
forced to put it to 0ms.

Basically, the answer is: set it to the lowest value you can afford
without impacting too much your performances (and if you use syslog,
use async I/O or send your log to the network).

--
Guillaume

I am trying to answer the question of how to tell if the cleanup of an index may be locked by a long transaction. And in the bigger context, why vacuums are taking long? What triggers them? I came across the following query which shows one table 'connect_tbl'  with high "heap hits" and "low heap buffer %" Now, 'heap' seems to be a memory construct. Any light shedding is appreciated.

mydb=# SELECT
mydb-# 'HEAP:'||relname AS table_name,
mydb-# (heap_blks_read+heap_blks_hit) AS heap_hits,
        ROUND(((heap_blks_hit)::NUMERIC/(heap_blks_read+heap_blks_hit)*100), 2)
mydb-# ROUND(((heap_blks_hit)::NUMERIC/(heap_blks_read+heap_blks_hit)*100), 2)
mydb-# AS heap_buffer_percentage
mydb-# FROM pg_statio_user_tables
mydb-# WHERE(heap_blks_read+heap_blks_hit)>0
mydb-# UNION
mydb-# SELECT
mydb-# 'TOAST:'||relname,
mydb-# (toast_blks_read+toast_blks_hit),
mydb-# ROUND(((toast_blks_hit)::NUMERIC/(toast_blks_read+toast_blks_hit)*100), 2)
mydb-# FROM pg_statio_user_tables
mydb-# WHERE(toast_blks_read+toast_blks_hit)>0
mydb-# UNION
mydb-# SELECT
mydb-# 'INDEX:'||relname,
mydb-# (idx_blks_read+idx_blks_hit),
mydb-# ROUND(((idx_blks_hit)::NUMERIC/(idx_blks_read+idx_blks_hit)*100), 2)
mydb-# FROM pg_statio_user_tables
mydb-# WHERE(idx_blks_read+idx_blks_hit)>0;
        table_name            | heap_hits | heap_buffer_percentage
------------------------------------+--------------+----------------------------------
 HEAP:connect_tbl         |    890878 |                  43.18
 HEAP:tblbound_tbl         |     43123 |                  13.80
 HEAP:tblcruel_tbl          |    225819 |                   6.98
 INDEX:connect_tbl         |    287224 |                  79.82
 INDEX:tblbound_tbl         |     81640 |                  90.28
 INDEX:tblcruel_tbl          |    253014 |                  50.73

--
Yudhvir Singh Sidhu
408 375 3134 cell

pgsql-performance by date:

Previous
From: "Guillaume Smet"
Date:
Subject: Re: Parsing VACUUM VERBOSE
Next
From: Craig James
Date:
Subject: Replication