query plans different for 8.1 on windows and aix - Mailing list pgsql-performance

From Tim Jones
Subject query plans different for 8.1 on windows and aix
Date
Msg-id 47668A1334CDBF46927C1A0DFEB223D3033ACE@mail.optiosoftware.com
Whole thread Raw
Responses Re: query plans different for 8.1 on windows and aix
List pgsql-performance
Hi,
 
  I am trying to perform the following type of query  'select patientname ... from patient were patientname LIKE 'JONES%, %' order by patientname asc limit 100'. There about 1.4 million rows in the table. On my windows machine (2GB Ram ,3Ghz, Windows XP, 120GB Hard Drive, postgres 8.1beta4) it takes about 150 millisecs and the query plan is
 
    'Limit  (cost=18381.90..18384.40 rows=100 width=404)'
'  ->  Unique  (cost=18381.90..18418.62 rows=1469 width=404)'
'        ->  Sort  (cost=18381.90..18385.57 rows=1469 width=404)'
'              Sort Key: patientname, patientidentifier, patientvipindicator, patientconfidentiality, patientmrn, patientfacility, patientssn, patientsex, patientbirthdate'
'              ->  Bitmap Heap Scan on patient  (cost=81.08..18304.62 rows=1469 width=404)'
'                    Filter: ((patientname)::text ~~ ''BILL%, %''::text)'
'                    ->  Bitmap Index Scan on ix_patientname  (cost=0.00..81.08 rows=7347 width=0)'
'                          Index Cond: (((patientname)::text >= ''BILL''::character varying) AND ((patientname)::text < ''BILM''::character varying))'
However the same query on AIX (4 1.5Ghz processors, 60GB filesystem, 4GB Ram, postgres 8.1.2) it takes like 5 secs because the query plan just uses sequentials scans
 
Limit  (cost=100054251.96..100054253.41 rows=58 width=161)
   ->  Unique  (cost=100054251.96..100054253.41 rows=58 width=161)
         ->  Sort  (cost=100054251.96..100054252.11 rows=58 width=161)
               Sort Key: patientname, patientidentifier, patientvipindicator, patientconfidentiality, patientmrn, patientfacility, patientssn, patientsex, patientbirthdate
               ->  Seq Scan on patient  (cost=100000000.00..100054250.26 rows=58 width=161)
                     Filter: ((patientname)::text ~~ 'SMITH%, NA%'::text)
Why is postgres using a sequential scan and not the index what parameters do I need to adjust
 
thanks
Tim Jones
Optio Software

pgsql-performance by date:

Previous
From: Vivek Khera
Date:
Subject: Re: 3WARE Card performance boost?
Next
From: Tom Lane
Date:
Subject: Re: query plans different for 8.1 on windows and aix