Skip site navigation (1) Skip section navigation (2)

Re: El like no funciona con indices, a diferencia de Oracle

From: "ernesto contreras" <eeljuri(at)gmail(dot)com>
To: "Lista PostgreSql" <pgsql-es-ayuda(at)postgresql(dot)org>
Cc: "ernesto contreras" <eeljuri(at)gmail(dot)com>
Subject: Re: El like no funciona con indices, a diferencia de Oracle
Date: 2006-08-22 14:48:04
Message-ID: 79f90aff0608220748w59d8e9eao85cd70cbe21f2cd3@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
On 8/22/06, ernesto contreras <eeljuri(at)gmail(dot)com> wrote:
>
> Amigos, tengo una simple tabla con datos de "clientes", la consulta que
> mayormente se efectúa es por nombre, apellido o una combinación de ambos,.
> Se crearon tres índices:
>
> uno único por un campo de "identificación "
> uno por "apellido"
> otro por "nombre y apellido"
>
> la tabla tiene 3.500.000 registros, pero se pensaba que el optimizador se
> comportaba similar al de "oracle" cuando se utiliza el operador "like", es
> decir,
>
> nombre like ('monte%'), en este caso lo usa (oracle) ya que el comodin no
> está al principio, claro que no lo usa completo, pero ayuda.
>
> La cuestión es que estamos sustituyendo una base de datos oracle y debe
> quedar igual o mejor.
>
> Datos de la estructura, índices y los Select's:
>
> Column   |          Type          | Modifiers
> -----------+------------------------+-----------
> nomter    | character varying(240) |
> apeter     | character varying(50)  |
> numid     | numeric(14,0)          |
> telef        | character varying(12)  |
> email1    | character varying(100) |
> email2    | character varying(100) |
> codciudad | character varying(3)   |
>
> Indexes:
>    "tercero_pkey" UNIQUE, btree (numid, dvid, tipoid)
>    "id_tercero3" btree (nomter, apeter)
>    "id_tercero4" btree (apeter)
>
>
> Búsqueda por "apellido"
>
> explain select nomter, numid from tercero
>  where apeter like ('JUAN%');
>                          QUERY PLAN
> ------------------------------------------------------------
>  Seq Scan on tercero  (cost=0.00..48388.32 rows=1 width=26)
>    Filter: ((apeter)::text ~~ 'JUAN%'::text)
> (2 rows)
>
>
> Búsqueda por "nombre"
>
> explain select nomter, numid from tercero
> where nomter like ('%CASTRO%') and apeter like ('JUAN%');
>                                        QUERY
> PLAN
>
> ----------------------------------------------------------------------------------------
>  Seq Scan on tercero  (cost=0.00..51686.39 rows=1 width=26)
>    Filter: (((nomter)::text ~~ '%CASTRO%'::text) AND ((apeter)::text ~~
> 'JUAN%'::text))
> (2 rows)
>
>
> Agredecemos sus comentarios y/o sugerencias.
>
>
>
>
>
>
>
>
>

In response to

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2006-08-22 14:50:53
Subject: Re: El like no funciona con indices, a diferencia de Oracle
Previous:From: ernesto contrerasDate: 2006-08-22 14:47:00
Subject: El like no funciona con indices, a diferencia de Oracle

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