Обсуждение: query plans different for 8.1 on windows and aix

Поиск
Список
Период
Сортировка

query plans different for 8.1 on windows and aix

От
"Tim Jones"
Дата:
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

Re: query plans different for 8.1 on windows and aix

От
Tom Lane
Дата:
"Tim Jones" <TJones@optio.com> writes:
> Why is postgres using a sequential scan and not the index what
> parameters do I need to adjust

You probably initialized the AIX database in a non-C locale.
See the manual concerning LIKE index optimizations.

            regards, tom lane