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
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 |