Consulta

From: "Viveros A(dot), Guillermo M(dot)" <gviveros(at)safp(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Consulta
Date: 2005-09-07 19:14:21
Message-ID: 431F3C0D.7010603@safp.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Se tiene una tabla (movi_reducida) a la que se le ha creado un indice
que está relacionado con un atributo de tipo bigint (cuen_numcue).

Al hacer un "explain" con un query que utiliza el atributo, se tiene lo
siguiente:

BaseDatosXX=> explain SELECT count(*) from movi_reducida where
cuen_numcue=1000829;
QUERY PLAN
------------------------------------------------------------------------------
Aggregate (cost=1779620.75..1779620.75 rows=1 width=0)
-> *Seq Scan* on movi_reducida (cost=0.00..1778810.75 rows=324000
width=0)
Filter: (cuen_numcue = 1000829)
(3 rows)

Llama la atención que se está realizando una búsqueda secuencial en vez
de indexada que es lo que uno esperaría, considerando que los datos se
encuentran bien distribuidos (no se repiten los valores).

Sin embargo, al modificar el query y poner el número entre apóstrofes,
se tiene lo siguiente:

BaseDatosXX=# EXPLAIN SELECT count(*) from movi where cuen_numcue='1000829';
QUERY PLAN
----------------------------------------------------------------------------------
Aggregate (cost=55.49..55.49 rows=1 width=0)
-> _*Index Scan*_ using mnumerocuenta on movi (cost=0.00..55.45
rows=15 width=0)
Index Cond: (cuen_numcue = 1000829::bigint)
(3 rows)

que es lo que uno realmente esperaría.

¿Alguien me podría explicar cuando es necesario utilizar apóstrofes?

Atte, Guillermo Viveros

Responses

  • Re: Consulta at 2005-09-07 20:52:07 from Alvaro Herrera
  • Re: Consulta at 2005-09-07 22:47:19 from Roberto Andrade Fonseca

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Leonardo Boet Sánchez 2005-09-07 19:20:51 RE: Consulta toma 100 Minutos!!??
Previous Message Alvaro Herrera 2005-09-07 19:06:10 Re: duda sobre configuracion de servidor postgresql con soporte para SSL