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: Anthony <asotolongo(at)uci(dot)cu>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: regexp en pgsql
Date: 2011-06-28 20:08:57
Message-ID: BANLkTinkfRq8taVfO5pvM-1uie2XU5HwGQ@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Gino gente ,
Perdon se me escapo sin terminar el correo.
Fijate entonces como optimizar si es posible la expresion en si misma
sino podes crear expresiones q funcionen pero q sean lentas.
salu2
mdc

2011/6/28 Juan <smalltalker(dot)marcelo(at)gmail(dot)com>

> Gino
>
> Entonces y si las regexp estan compiladas en C no creo q haya manera de
> mejorar la velocidad.
> Las expresiones regulares la sintax es importante y existen muchas formas
> de
> mejorar la busqueda.
> Si no estas muy experto en ellas es posible construir expresiones regulares
>
> poco eficientes
>
>
> 2011/6/28 Gino Rojas Tillemann <gino(at)masnet(dot)cl>
>
>> el campo id ya esta indexado y no se trata de la cantidad de registros que
>> tenga la tabla, probé moviendo 10 mil registros a una tabla nueva y demora
>> lo mismo, solo cambia los tiempos de proceso cuando quito expresiones
>> regulares de la función, pero lamentablemente no puedo quitar esas regexp de
>> la fn, es por eso que busco que el proceso se haga mas rápido desde el
>> procesador, lamentablemente postgresql solo me entrega un core del CPU para
>> realizar este trabajo, si tan solo usara los 2 CPU y sus 8 nucleos sería
>> maravilloso :)
>>
>>
>>
>> El 28 de junio de 2011 15:56, Anthony <asotolongo(at)uci(dot)cu> escribió:
>>
>> **
>>> On 28/06/11 15:48, Gino Rojas Tillemann wrote:
>>>
>>> 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
>>>
>>> tienes algún criterio que te pueda servir para particionar la tabla? pues
>>> el particioamiento te puede ayudar.
>>> saludos
>>>
>>
>>
>>
>> --
>> Gino Rojas Tillemann
>>
>
>

In response to

Responses

pgsql-es-ayuda by date

Next:From: Gino Rojas TillemannDate: 2011-06-28 20:15:11
Subject: Re: regexp en pgsql
Previous:From: JuanDate: 2011-06-28 20:07:31
Subject: Re: regexp en pgsql

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