query plans different for 8.1 on windows and aix

Поиск
Список
Период
Сортировка
От Tim Jones
Тема query plans different for 8.1 on windows and aix
Дата
Msg-id 47668A1334CDBF46927C1A0DFEB223D3033ACE@mail.optiosoftware.com
обсуждение исходный текст
Ответы Re: query plans different for 8.1 on windows and aix  (Tom Lane <tgl@sss.pgh.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Vivek Khera
Дата:
Сообщение: Re: 3WARE Card performance boost?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: query plans different for 8.1 on windows and aix