[Pgsql-ayuda] Re: [Pgsql-ayuda] ¿Cómo se come esto?

J. Mario Oroz jmoroz@uol.com.ar
Thu, 28 Nov 2002 08:23:05 -0300


Antonio:

Me queda una duda; que dice postgres al hacer  un explain del select que
posteaste una ves que reindexaste?

Te vuelve a decir que realiza un "Seq Scan";

y si en ves de colocar como parametro para id; "id =21293::bigint" pones lo
siguiente:
"id=21293::int4" ó "id=21293::int8" y haces un explain..... vuelve a dar
"Seq Scan".

Mario

----- Original Message -----
From: "Antonio Mármol Albert" <toni@infurma.combios.es>
To: <pgsql-ayuda@tlali.iztacala.unam.mx>
Sent: Wednesday, November 27, 2002 2:50 PM
Subject: [Pgsql-ayuda] Re: [Pgsql-ayuda] Re: [Pgsql-ayuda] ¿Cómo se come
esto?


> El miércoles 27 de noviembre de 2002  (14:38), J. Mario Oroz escribió:
>
> > > El miércoles 27 de noviembre de 2002  (13:21), J. Mario Oroz escribió:
> > > > Que version de Postgres tenes?
> > >
> > > rpm -q postgresql
> > >
> > > postgresql-7.2-1
> > >
> > > > Esto me suena a un bug en los indices de numeros enteros que observe
por
> > la
> > > > ver. 7.1.0 ... si mal no recuerdo...
> > > > Mejor dicho un problema con la busqueda indexada, pues el explain me
> > decia
> > > > que buscaba secuencialmente
> > > > teniendo a mano un bruto indice para el parametro que pasaba al
select.
> > > > A lo mejor esta relacionado?!.
> > > > Algo postie a la lista y me lo confirmo el Ing.Andrade Fonseca.
> > > > Se arregla con un cast del parametro a int8 o bigint.
> > > > usa un explain a ver que dice!
> > >
> > > Esto último no lo entiendo / no se como se hace. :)
> >
> > Seria algo comoesto:
> >
> > EXPLAIN SELECT id, marca FROM empresas WHERE id=21293::bigint;
>
> habitat=# EXPLAIN SELECT id, marca FROM empresas WHERE id=21293::bigint;
> NOTICE:  QUERY PLAN:
>
> Seq Scan on empresas  (cost=0.00..769.44 rows=1 width=86)
>
> EXPLAIN
> habitat=# SELECT id, marca FROM empresas WHERE id=21293;
>  id | marca
> ----+-------
> (0 rows)
>
>
> > ó
> >
> > EXPLAIN SELECT id, marca FROM empresas WHERE id='21293'::bigint;
>
> habitat=# EXPLAIN SELECT id, marca FROM empresas WHERE id='21293'::bigint;
> NOTICE:  QUERY PLAN:
>
> Seq Scan on empresas  (cost=0.00..769.44 rows=1 width=86)
>
> EXPLAIN
> habitat=# SELECT id, marca FROM empresas WHERE id='21293';
>  id | marca
> ----+-------
> (0 rows)
>
> > Mira ... este es un extracto del mail que postie en aquel momento...
> >
> > ...
> > Luego ejecute VACUUM ANALIZE y luego un select de la forma:
> >
> > EXPLAIN SELECT * FROM clientes WHERE tipo_doc=1::smallint AND
> > nro_doc=23356::bigint;
> >
> > El resultado fue un bonito "Index Scan on tn_cli_idx" ... es decir usó
el
> > vendito indice.
> > ...
> >
> > Nota: Hiciste un VACUUM ANALIZE?
> >
> > Aunque me parece que va por otro lado!, puesto que si funciona el select
con
> > otros id's.
>
> Lo del VACUUM no lo he hecho. No sé lo que hace. ¿Puede fastidiar la base
> de datos?
>
> --
> Antonio Mármol Albert ( toni@infurma.es )
> http://www.infurma.es
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda