Re: problem on table statistics

Поиск
Список
Период
Сортировка
От Szymon Guz
Тема Re: problem on table statistics
Дата
Msg-id CAFjNrYsporzEQHtRE_wNQbQrukHDxRKdXqQXWTTXCDcQNCGnVg@mail.gmail.com
обсуждение исходный текст
Ответ на problem on table statistics  (Silvio Brandani <silvio.brandani@tech.sdb.it>)
Ответы Re: problem on table statistics  (Silvio Brandani <silvio.brandani@tech.sdb.it>)
Список pgsql-admin


On 9 January 2012 15:41, Silvio Brandani <silvio.brandani@tech.sdb.it> wrote:

In the last few hours we get a problem with following  query in Production database  :

select * from "001".mov_con  where number in ( select number from "001".mov_con where abs(amount-total_amo)>0.1) ;

The correct plan should be

                                            QUERY PLAN
-----------------------------------------------------------------------------------------------------
 Nested Loop  (cost=541763.01..584606.03 rows=1249640 width=360)
  ->  HashAggregate  (cost=541763.01..541807.55 rows=4454 width=10)
        ->  Index Scan using mov_con_x9 on mov_con t2  (cost=0.00..538639.38 rows=1249452 width=10)
              Filter: (abs((amount - total_amo)) > 0.1::double precision)
  ->  Index Scan using mov_con_pkey on mov_con t1  (cost=0.00..6.10 rows=281 width=360)
        Index Cond: (t1.number = t2.number)
(6 rows)


instead we get the following WRONG one:

                                         QUERY PLAN
-----------------------------------------------------------------------------------------------
 Nested Loop IN Join  (cost=0.00..52906.16 rows=117499 width=620)
  ->  Index Scan using mov_con_x10 on mov_con t1  (cost=0.00..52483.90 rows=352486 width=620)
  ->  Index Scan using mov_con_x10 on mov_con t2  (cost=0.00..0.72 rows=3 width=11)
        Index Cond: (t2.number = t1.number)
        Filter: (abs((t2.amount - t2.total_amo)) > 0.1::double precision)

So I go to see statistics and try to change the default_statistics_target from 10 to 100 , reload the configuration and vacuum the table and the result is that while
the other tables have now 100 values on  pg_stats the mov_con table still have the same values

 SELECT * FROM pg_stats
WHERE tablename='mov_con' AND attname='number' ;

So there is something wrong with table statistics. How can I reset the pg_statistics for this table???

Any comment higly appreciated.






Hi,
did you make only vacuum, or vacuum analyze? Simple vacuum does not change stats, analyze does (or vacuum analyze).


regards
Szymon

В списке pgsql-admin по дате отправления:

Предыдущее
От: Silvio Brandani
Дата:
Сообщение: problem on table statistics
Следующее
От: Silvio Brandani
Дата:
Сообщение: Re: problem on table statistics