pg.ddx.io  pgsql-general@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Vincent Veyron <vv.lists@wanadoo.fr>
To: wolfgang@noten5.maas-noten.de
Cc: pgsql-general@postgresql.org
Subject: Re: Optimizing query?
Date: Thu, 31 Jan 2013 08:07:30 +0100
Message-ID: <1359616050.2444.3.camel@asus-1001PX.home> (raw)
In-Reply-To: <wolfgang-1130130120805.A0219642@noten5.maas-noten.de>
References: <wolfgang-1130130120805.A0219642@noten5.maas-noten.de>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-general>

Le mercredi 30 janvier 2013 à 11:08 +0000, wolfgang@noten5.maas-noten.de
a écrit :
> Hi,
> 
> I am trying to match items from 2 tables based on a common string.
> One is a big table which has one column with entries like XY123, ABC44, etc
> The table has an index on that column.
> The second table is, typically, much smaller
> 
> select .... from tab1, tab2 where tab1.code = tab2.code;
> 
> This works fine and fast.
> Now, as a variant, I have some entries like XY423A, XY423B, GF55A, GF55D in the
> big table and want them to match XY423, GF55 in the second table
> 
> Variants I have tried
> 
> select  .... from tab1, tab2 where tab1.code ~ (tab2.code||'($|[A-Z])');
> select  .... from tab1, tab2 where tab1.code ~ ('^'||tab2.code||'($|[A-Z])');
> 

Have you tried the substring function?

select  .... from tab1, tab2 where substring(tab1.code from 1 for 5) =
tab2.code


> both take an enormous time. In the better case that I can subset (e.g. all candidates in table 2
> share initial "AX") I get back to manageable times by adding
>   and tab1.code ~ '^AX'
> into the recipe. Actual runtime with about a million entries in tab1 and 800 entries in tab2
> is about 40 seconds.
> 
> Regards
> Wolfgang Hamann
> 
> 
> 
> 
> 
> 

-- 
Salutations, Vincent Veyron
http://marica.fr/site/demonstration
Logiciel de gestion des contentieux juridiques et des sinistres d'assurance



-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



view thread (41+ messages)  latest in thread

Message-ID: <1359616050.2444.3.camel@asus-1001PX.home>
Permalink:  ../1359616050.2444.3.camel@asus-1001PX.home/
Also on:    postgresql.org/message-id/1359616050.2444.3.camel@asus-1001PX.home

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-general@postgresql.org
  Cc: vv.lists@wanadoo.fr, wolfgang@noten5.maas-noten.de
  Subject: Re: Optimizing query?
  In-Reply-To: <1359616050.2444.3.camel@asus-1001PX.home>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox