plpgsql functing does not use index....

From: Ralf Hasemann <rhasemann(at)mac(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: plpgsql functing does not use index....
Date: 2004-07-12 21:35:03
Message-ID: 55B83304-D44B-11D8-8DB9-000393D76D50@mac.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi Postgres people!

yes, I googled a lot for an answer to this question and found out that
it was asked
several times, but I could not find a sufficient answer. So here goes
my problem:

I am evaluating PostgreSQL at the moment. I got a table with about
4,500,000 rows - something I allways use for testing.

This is my table:

public adressen id -5 int8 8
public adressen name 12 varchar 255
public adressen strasse 12 varchar 255
public adressen ort 12 varchar 255
public adressen telefon 12 varchar 255

It has an index on name:
public adressen_ixname name 12 varchar 255

I use a plpgsql function to select data from the table.
Here is my function:

create or replace function fnc_selAdressByName(varchar, integer,
integer) returns setof adressen as '
declare

rec public.adressen%ROWTYPE;

pName alias for $1;
pLimit alias for $2;
pOffset alias for $3;

begin

for rec in select * from public.adressen
where name like pName
order by name
limit pLimit offset pOffset
loop
return next rec;
end loop;

return;
end

' language 'plpgsql';

I call the function with: select * from
fnc_selAdressByName('Hasemann%', 5, 0);
The request takes about 22 sec.

When I execute the query of the function directly:
select * from public.adressen where name like 'Hasemann%' order by
name limit 5 offset 0
the request takes about 0.058 sec.

So I get the idea that the query uesn in the plpgsql function did not
use the adressen_ixname index.

Why????? What can I do to make it use the index?????

Thx for any help!!!

Regards,
Ralf Hasemann

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Frank Bax 2004-07-12 23:27:50 Re: plpgsql functing does not use index....
Previous Message Andy Harrison 2004-07-12 18:02:14 Re: using 'count' to show number of dupes