Re: Interesting speed anomaly
| От | Gavin Sherry |
|---|---|
| Тема | Re: Interesting speed anomaly |
| Дата | |
| Msg-id | Pine.LNX.4.58.0512150902400.17379@linuxworld.com.au обсуждение исходный текст |
| Ответ на | Re: Interesting speed anomaly (Gavin Sherry <swm@linuxworld.com.au>) |
| Ответы |
Re: Interesting speed anomaly
|
| Список | pgsql-hackers |
On Thu, 15 Dec 2005, Gavin Sherry wrote:
> On Wed, 14 Dec 2005, Zoltan Boszormenyi wrote:
>
> > Tom Lane írta:
> >
> > >Zoltan Boszormenyi <zboszor@dunaweb.hu> writes:
> > >
> > >
> > >>$ time echo "select * from v_invoice_browse where code||inv_no = 'CARO200000020'" | dbaccess db
> > >>
> > >>
> > >
> > >
> > >
> > >>Is there a way to speed this operation up?
> > >>
> > >>
> > >
> > >Make an expression index on "code||inv_no", if you think this case is
> > >important enough to be worth maintaining an extra index for.
> > >
> > >(This is not on-topic for -hackers, IMHO. Try pgsql-perform.)
> > >
> > > regards, tom lane
> > >
> > >
> > >
> >
> > Thanks for both the hint and the pointer to the mailing list.
> > My problem is, I can't see how could I create any index on a view.
> > PostgreSQL refuses it:
> >
> > create index iinvbrowse1 on v_invoice_browse ((code||inv_no));
> > ERROR: "v_invoice_browse" is not a table
> >
> > Creating indexes on the 12 invoice tables, like this:
> >
> > create index iinvoice1 on invoice1 (('PREFIX'||id));
>
> Are you creating the index on (core || id) on on the string 'PREFIX' or
> some other literal?
Sorry, I sent this email instead of cancelling it. I take it 'code' is a
string generated by the query, for example: "select 'CAR' as code,* from
cars ...."? If so, it seems strange that we do not use the expressional
index. Could you send the output of explain analyze?
Thanks,
Gavin
В списке pgsql-hackers по дате отправления: