Skip site navigation (1) Skip section navigation (2)

Re: regexp en pgsql

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:51:48
Message-ID: BANLkTim4J_E-HE_WMqMtTUhzwbEuq9e-dw@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
entonces no le pongas el where. pero indice en una tabla tan grande por
campo de
busqueda tenes q tener si queres q no tarde demasiado
proque no probas con

explain analyze 'tu querie'
a ver q te meustra el plan.
salu2
mdc


2011/6/28 Gino Rojas Tillemann <gino(at)masnet(dot)cl>

> Hola Juan, si hago eso tendría que crear 3.200 indices para esa tabla,
> ademas no necesariamente voy a actualizar el registros 1 al 10mil podría ser
> del 8mil al 15mil etc...
>
> ahora voy a crear la misma función en C para ver si así logro mejores
> resultados con el procesamiento del texto.
>
> alguna otra idea?
> sld2
>
> El 28 de junio de 2011 15:41, Juan <smalltalker(dot)marcelo(at)gmail(dot)com>escribió:
>
> 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
>>>
>>
>>
>
>
> --
> Gino Rojas Tillemann
>

In response to

pgsql-es-ayuda by date

Next:From: AnthonyDate: 2011-06-28 19:56:57
Subject: Re: regexp en pgsql
Previous:From: Gino Rojas TillemannDate: 2011-06-28 19:48:59
Subject: Re: regexp en pgsql

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group