El 16/11/2011 01:22 p.m., Cesar Erices escribió:
El 15 de noviembre de 2011 14:11, Anita Ramirez <[email protected] <mailto:[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.-


Revisa los indices y pk, habitualmente esto se produce por un ml diseño de BBDD

atte.

--
Sin más que decir se despide de Usted, muy atentamente

Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema

Santiago - Chile

Se certificó que el correo no contiene virus.
Comprobada por AVG - www.avg.es <http://www.avg.es>
Versión: 2012.0.1869 / Base de datos de virus: 2092/4620 - Fecha de la versión: 16/11/2011

Hola, que caracteristicas tiene el equipo de la bd.
Como es la cnsulta de like que estas usando?
es algo asi : select * from persona where coalesce(apellido1,'')||' '||colaesce(apellido2,'')||' '||coalesce(nombre1,'')||' '||colaesce(nombre2,'') ilike '%rodriguez fernando%'

saludos fernando rodriguez

Responder a