8.4.4, 9.0, and 9.1 Planner Differences

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

 



Hi there!

We have a dev machine running 9.0.1 (an i3 laptop, with a regular hard disk, with 4GB of RAM, and a mostly untuned postgresql.conf file).  The changed lines are:
  shared_buffers = 512MB
  temp_buffers = 48MB
  work_mem = 32MB
  maintenance_work_mem = 348MB
  checkpoint_segments = 10
  effective_cache_size = 512MB

The same database is loaded onto a production server running 9.1.1 (dual QC processors, RAID-10 SAS drives, 36GB of RAM), which replicates to a backup server.  This has a lot of changed properties:
  shared_buffers = 8500MB
  work_mem = 35MB
  maintenance_work_mem = 512MB
  wal_level = hot_standby
  checkpoint_segments = 50
  max_wal_senders = 3
  wal_keep_segments = 144
  random_page_cost = 1.0
  effective_cache_size = 16384MB
  effective_io_concurrency = 6

The same DB is loaded on both the production and the dev environment, and in all cases (about 5000 distinct different queries), the production environment is about 500x faster, except for one type of query (both databases were loaded from the same pg_dump on an 8.4.4 database):

    On the dev box, we have:  http://explain.depesz.com/s/rwU   - about 131 seconds
    On the production box, we have:  http://explain.depesz.com/s/3dt  - about .25 seconds

For the life of me, I don't understand why it would be slower.  What can we do to speed up this one query?

By the way, on 8.4.4, the query took about 84 seconds.  I cannot understand why the 9.0 is so blazing fast, but 8.4.4 and 9.1.1 are slower.  We've checked the query results (they are identical) to make sure we're not missing any data.


--
Anthony

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux