Re: How to speed up product code and subcode match

Andrus <kobruleht2@hot.ee>

From: Andrus <kobruleht2@hot.ee>
To: Tom Lane <tgl@sss.pgh.pa.us>, "Bzm@g" <bzm@2bz.de>
Cc: pgsql-general <pgsql-general@postgresql.org>
Date: 2023-05-23T14:49:16Z
Lists: pgsql-general
Hi!

Using index

create index on toode ( *split_part( toode, '/',1) *)

and query

select toode.toode , n2, n3, n4

from toode, vordlusajuhinnak

where *split_part( toode.toode, '/',1) *= vordlusajuhinnak.toode;

reduces run time to 5 minutes.

Andrus.


23.05.2023 17:26 Andrus kirjutas:
>
> Hi!
>
>> Separate
>> the product code and size into two columns --- if there's somebody
>> who really wants to see them in the above format, give them a
>> view or generated column.  Then instead of the impossible-to-optimize
>> queries you showed, you could do something like
>>
>> select toode.toode , n2, n3, n4
>> from toode, vordlusajuhinnak
>> where toode.toode = vordlusajuhinnak.toode;
>>
> Can function index
>
> create index on toode ( *split_part( toode, '/',1) *)
>
> and query
>
> select toode.toode , n2, n3, n4
>
> from toode, vordlusajuhinnak
>
> where *split_part( toode.toode, '/',1) *= vordlusajuhinnak.toode;
>
>
> used and keeping existing table structure? Functional index should 
> produce same speed improvement as using separate column?
>
> Andrus.
>
>