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.marc...@gmail.com <mailto:smalltalker.marc...@gmail.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 <g...@masnet.cl
    <mailto:g...@masnet.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

Responder a