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