From: | Juan <smalltalker(dot)marcelo(at)gmail(dot)com> |
---|---|
To: | Gino Rojas Tillemann <gino(at)masnet(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: regexp en pgsql |
Date: | 2011-06-28 19:41:58 |
Message-ID: | BANLkTi=EooVbm-e8PcYAD5pDc6eTLsN_7Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola gente
Gino por lo que veo en tu query te convendria tener un index en la expresion
where
o sea my_table tenga un index con where .
o mejor.
create index my_nombre_de_index on mytable( id ) where id between 1 and
10000 ;
eso generalmente acelera las cosas.
salvo claro esta q ya lo tengas
salu2
mdc
2011/6/28 Gino Rojas Tillemann <gino(at)masnet(dot)cl>
> Hola a todos,
>
> hace un par de semanas estoy peleando con mi DB y las expresiones
> regulares, cada vez que proceso 10 mil registros de un universo de 32
> millones el motor demora 7 minutos pegados sin variación en procesar una
> cadena de texto por cada registro; para lograr esto creé una función en
> plpgsql con (de momento) 40 expresiones regulares (en algunos casos bastante
> complejas) y actualizo un campo de una tabla con el resultado del proceso,
> algo como esto:
>
> update my_table set campo_final=fn_regexp(campo1||campo2||campo3) where id
> between 1 and 10000
>
> la función "fn_regexp" contiene la lógica de las expresiones regulares y la
> tabla my_table es de 32 millones de registros
>
> si alguien tiene alguna idea de como optimizar la ejecución de las
> expresiones regulares será de gran ayuda, gracias..
>
> haaa y por fa no me sugieran crear varios threads con otro lenguaje ya que
> lo que busco es bajar mis actuales 7 minutos de proceso
>
>
> saludos
>
> --
> Gino Rojas Tillemann
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2011-06-28 19:43:45 | Re: ayuda con función en C |
Previous Message | Gino Rojas Tillemann | 2011-06-28 19:32:56 | regexp en pgsql |