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

Antonio Mármol Albert toni@infurma.combios.es
Wed, 27 Nov 2002 18:50:47 +0100


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