Search Postgresql Archives

Re: query plan question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What I think is happening with the missing pg_statistic entries:

The install of our application involves a lot of data importing (via
JDBC) in one large transaction, which can take up to 30 minutes. (I
realize I left out this key piece of info in my original post...)

The pg_autovacuum logic is relying on data from pg_stat_all_tables to
make the decision about running analyze. As far as I can tell, the data
in this view gets updated outside of the transaction, because I saw the
numbers growing while I was importing. I saw pg_autovacuum log messages
for running analyze on several tables, but no statistics data showed up
for these, I assume because the actual data in the table wasn't yet
visible to pg_autovacuum because the import transaction had not finished
yet.

When the import finished, not all of the tables affected by the import
were re-visited because they had not bumped up over the threshold again,
even though the analyze run for those tables had not generated any stats
because of the still-open transaction.

Am I making the correct assumptions about the way the various pieces
work? Does this scenario make sense?

It's easy enough for us to kick off a vacuum/analyze at the end of a
long import - but this "mysterious" behavior was bugging me!

Thanks.

- DAP 

>-----Original Message-----
>From: Matthew T. O'Connor [mailto:matthew@xxxxxxxx] 
>Sent: Wednesday, November 17, 2004 2:02 PM
>To: David Parker
>Cc: Tom Lane; Jeff; Russell Smith; pgsql-performance@xxxxxxxxxxxxxx
>Subject: Re: [PERFORM] query plan question
>
>Well based on the autovacuum log that you attached, all of 
>those tables 
>are insert only (at least during the time period included in 
>the log.   
>Is that correct?  If so, autovacuum will never do a vacuum 
>(unless required by xid wraparound issues) on those tables.  
>So this doesn't appear to be an autovacuum problem.  I'm not 
>sure about the missing pg_statistic entries anyone else care 
>to field that one?
>
>Matthew
>
>
>David Parker wrote:
>
>>Thanks. The tables I'm concerned with are named: 'schema', 'usage', 
>>'usageparameter', and 'flow'. It looks like autovacuum is performing
>>analyzes:
>>
>>% grep "Performing: " logs/.db.tazz.vacuum.log
>>[2004-11-17 12:05:58 PM] Performing: ANALYZE 
>>"public"."scriptlibrary_library"
>>[2004-11-17 12:15:59 PM] Performing: ANALYZE 
>>"public"."scriptlibraryparm"
>>[2004-11-17 12:15:59 PM] Performing: ANALYZE "public"."usageparameter"
>>[2004-11-17 12:21:00 PM] Performing: ANALYZE "public"."usageproperty"
>>[2004-11-17 12:21:00 PM] Performing: ANALYZE "public"."route"
>>[2004-11-17 12:21:00 PM] Performing: ANALYZE "public"."usageparameter"
>>[2004-11-17 12:21:00 PM] Performing: ANALYZE 
>>"public"."scriptlibrary_library"
>>[2004-11-17 12:26:01 PM] Performing: ANALYZE "public"."usage"
>>[2004-11-17 12:26:01 PM] Performing: ANALYZE "public"."usageparameter"
>>[2004-11-17 12:31:04 PM] Performing: ANALYZE "public"."usageproperty"
>>[2004-11-17 12:36:04 PM] Performing: ANALYZE "public"."route"
>>[2004-11-17 12:36:04 PM] Performing: ANALYZE "public"."service_usage"
>>[2004-11-17 12:36:04 PM] Performing: ANALYZE "public"."usageparameter"
>>
>>But when I run the following:
>>
>>select * from pg_statistic where starelid in (select oid from 
>pg_class 
>>where relname in
>>('schema','usageparameter','flow','usage'))
>>
>>it returns no records. Shouldn't it? It doesn't appear to be doing a 
>>vacuum anywhere, which makes sense because none of these tables have 
>>over the default threshold of 1000. Are there statistics 
>which only get 
>>generated by vacuum?
>>
>>I've attached a gzip of the pg_autovacuum log file, with -d 3.
>>
>>Thanks again.
>>
>>- DAP
>>
>>
>>  
>>
>>>-----Original Message-----
>>>From: Matthew T. O'Connor [mailto:matthew@xxxxxxxx]
>>>Sent: Wednesday, November 17, 2004 11:41 AM
>>>To: David Parker
>>>Cc: Tom Lane; Jeff; Russell Smith; pgsql-performance@xxxxxxxxxxxxxx
>>>Subject: Re: [PERFORM] query plan question
>>>
>>>David Parker wrote:
>>>
>>>    
>>>
>>>>We're using postgresql 7.4.5. I've only recently put 
>pg_autovacuum in 
>>>>place as part of our installation, and I'm basically taking the 
>>>>defaults. I doubt it's a problem with autovacuum itself, but rather 
>>>>with my configuration of it. I have some reading to do, so
>>>>      
>>>>
>>>any pointers
>>>    
>>>
>>>>to existing autovacuum threads would be greatly appreciated!
>>>>
>>>>      
>>>>
>>>Well the first thing to do is increase the verbosity of the 
>>>pg_autovacuum logging output.  If you use -d2 or higher, 
>pg_autovacuum 
>>>will print out a lot of detail on what it thinks the thresholds are 
>>>and
>>>why it is or isn't performing vacuums and analyzes.   Attach 
>>>some of the
>>>log and I'll take a look at it.
>>>
>>>    
>>>
>
>


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux