I'm forwarding again this email to list, because Me and Scoot unfortunately
was talking alone. (thanks Scott)

>So what do:
>select * from pg_stat_activity where current_query ilike '%transaction%';
>and
>select * from pg_stat_activity where now()-current_query > '1
minute'::interval;
>say?
>You should really avoid vacuum full, and stick to vacuum (plain).  At
>least until you can get the tuples to be freed up.  Each time you run
>it you bloat your indexes.

To clarify:

This is a production server with lots of connection and the commands above
returns a lot of rows, but nothing related with this table (see bellow).
I know the problem with VACUUM FULL and bloated Indexes, but I don't
understand why the table that is not in use by nobody, cant be vacuumed or
clustered to avoid dead tuples.
Single VACUUM cant recover this dead tuples too.

I see an opened transaction (this is a tomcat servlet webpage), but killing
this transaction does not help the VACUUM:

<webpa 192.168.1.1 2010-08-17 18:36:40.459 BRT 243345>LOG:  execute S_1:
BEGIN
<webpa 192.168.1.1 2010-08-17 18:36:40.459 BRT 243346>LOG:  duration: 0.010
ms
<webpa 192.168.1.1 2010-08-17 18:36:40.459 BRT 243347>LOG:  duration: 0.362
ms
<webpa 192.168.1.1 2010-08-17 18:36:40.460 BRT 243348>LOG:  duration: 0.703
ms
<webpa 192.168.1.1 2010-08-17 18:36:40.460 BRT 243349>LOG:  execute
<unnamed>: SELECT TP93usuari, TP93Objeto, TP93Ca251, TP93Nm0805, TP93Nm0804,
TP93Ca501, TP93Ca2001, TP93Nm1521, TP93Nm0803, TP93Ca253, TP93Nm1522,
TP93Nm0801, TP93Nm0802, TP93Chave FROM TP93T WHERE (TP93usuari = $1) AND
(TP93Objeto = 'PC0658PP') AND (TP93Ca251 >= $2) ORDER BY TP93Chave
<webpa 192.168.1.1 2010-08-17 18:36:40.460 BRT 243350>DETAIL:  parameters:
$1 = 'WEBCLIENTE          ', $2 = '                    '
<webpa 192.168.1.1 2010-08-17 18:36:40.469 BRT 243351>LOG:  duration: 9.302
ms

[postg...@servernew logs]$ psql carmen
psql (8.4.4)
Type "help" for help.

carmen=# select * from vlocks where relname='tp93t'; select * from
pg_stat_activity where usename='webpa';

 datname | relname | virtualtransaction |      mode       | granted |
usename |        substr         |          query_start          |
age       | procpid
---------+---------+--------------------+-----------------+---------+---------+-----------------------+-------------------------------+-----------------+---------
 carmen  | tp93t   | 25/4319            | AccessShareLock | t       |
webpa   | <IDLE> in transaction | 2010-08-17 18:36:40.460657-03 |
00:01:09.455456 |    1917
(1 row)


 datid | datname | procpid | usesysid  | usename |     current_query     |
waiting |          xact_start           |          query_start
|         backend_start         | client_addr | client_port
-------+---------+---------+-----------+---------+-----------------------+---------+-------------------------------+-------------------------------+-------------------------------+-------------+-------------
 16745 | carmen  |    1917 | 750377993 | webpa   | <IDLE> in transaction |
f       | 2010-08-17 18:36:40.459531-03 | 2010-08-17 18:36:40.460657-03 |
2010-08-17 18:36:09.917687-03 | 192.168.1.1 |       39027
(1 row)

carmen=# select * from vlocks where usename='webpa';

 datname |  relname   | virtualtransaction |      mode       | granted |
usename |        substr         |          query_start          |
age       | procpid
---------+------------+--------------------+-----------------+---------+---------+-----------------------+-------------------------------+-----------------+---------
 carmen  | tp93t_pkey | 25/4319            | AccessShareLock | t       |
webpa   | <IDLE> in transaction | 2010-08-17 18:36:40.460657-03 |
00:01:16.618563 |    1917
 carmen  | tp93t      | 25/4319            | AccessShareLock | t       |
webpa   | <IDLE> in transaction | 2010-08-17 18:36:40.460657-03 |
00:01:16.618563 |    1917
 carmen  |            | 25/4319            | ExclusiveLock   | t       |
webpa   | <IDLE> in transaction | 2010-08-17 18:36:40.460657-03 |
00:01:16.618563 |    1917
(3 rows)

-----------------------------------------------------------------------------------------------

OK, I will kill the backend and run vacuum:

carmen=# select pg_terminate_backend(1917);
 pg_terminate_backend
----------------------
 t
(1 row)

carmen=# select * from vlocks where relname='tp93t'; select * from
pg_stat_activity where usename='webpa';

 datname | relname | virtualtransaction | mode | granted | usename | substr
| query_start | age | procpid
---------+---------+--------------------+------+---------+---------+--------+-------------+-----+---------
(0 rows)

 datid | datname | procpid | usesysid  | usename |     current_query     |
waiting |          xact_start           |          query_start
|         backend_start         | client_addr | client_port
-------+---------+---------+--
---------+---------+-----------------------+---------+-------------------------------+-------------------------------+-------------------------------+-------------+-------------
(0 rows)


carmen=# VACUUM verbose tp93t;
INFO:  vacuuming "public.tp93t"
INFO:  index "tp93t_pkey" now contains 5592 row versions in 103 pages
DETAIL:  0 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  "tp93t": found 0 removable, 19336 nonremovable row versions in 4887
out of 4887 pages
DETAIL:  19126 dead row versions cannot be removed yet.


carmen=# VACUUM FULL verbose tp93t;
INFO:  vacuuming "public.tp93t"
INFO:  "tp93t": found 0 removable, 19336 nonremovable row versions in 4887
pages
DETAIL:  19126 dead row versions cannot be removed yet.
Nonremovable row versions range from 1853 to 2029 bytes long.
There were 210 unused item pointers.
(...)







2010/8/17 Scott Marlowe <scott.marl...@gmail.com>

> On Tue, Aug 17, 2010 at 2:28 PM, Alexandre de Arruda Paes
>
> <adald...@gmail.com> wrote:
>
> So what do:
> select * from pg_stat_activity where current_query ilike '%transaction%';
> and
> select * from pg_stat_activity where now()-current_query > '1
> minute'::interval;
> say?
>
> > And its the dead rows is growing:
> >
> > carmen=# VACUUM FULL verbose tp93t;
>
> You should really avoid vacuum full, and stick to vacuum (plain).  At
> least until you can get the tuples to be freed up.  Each time you run
> it you bloat your indexes.
>
> > INFO:  vacuuming "public.tp93t"
> > INFO:  "tp93t": found 1309 removable, 313890 nonremovable row versions in
> > 78800 pages
> > DETAIL:  312581 dead row versions cannot be removed yet.
> > Nonremovable row versions range from 1845 to 2032 bytes long.
> > There were 3014 unused item pointers.
>
>
> --
> To understand recursion, one must first understand recursion.
>

Reply via email to