El día 15 de noviembre de 2011 19:11, Anita Ramirez <[email protected]> escribió: > > Buenas tardes, > > Resulta que tengo una función que realiza varias validaciones, inserciones > etc. Una de ellas es realizar búsqueda por like a una tabla. Básicamente > tengo dos tablas "alumno" y "persona", a cada alumno se debe buscar en la > tabla persona, y para ello solo contamos con nombres y apellidos (nombre > completo, es decir en un solo campo y campos separados, es decir nombre1, > nombre2, apellido1, apellido2), por lo que inicialmente procedemos a buscar > por "=", considerando mayusculas, minusculas, caracteres especiales, si eso > no emite resultado procedemos a buscar por like en los campos separados, y > si nuevamente no emite resultados, se realiza nuevamente la búsqueda por > like en el campo que contiene el nombre y apellido completo. > > La tabla persona en la que se realiza la búsqueda tiene aproximadamente > 580000 registros. Probé con indices btree, y también leí acerca de > varchar_pattern_ops, pero con éste ultimo no es posible utilizar "es igual", > por lo que no me resulta. > > Tal cual como se encuentra ahora por 50 registros tarda 6 minutos > aproximadamente, lo cual es mas que excesivo. > > Alguna idea? > > Desde ya, gracias. > > Ana Ramirez.- >
Migrar a 9.1 es una opción? http://palominodb.com/blog/2011/10/12/indexing-text-columns-gist-or-gin-optimize-ilike-using-pgtrgm-postgres-91-part-1 -- -- Emanuel Calvo Helpame.com - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
