uso de indices con ilike

From: Miguel de la Fuente <jmdelafuente(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: uso de indices con ilike
Date: 2007-05-16 17:47:38
Message-ID: 738618.62706.qm@web52608.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos, me encuentro con el siguiente problema:

Tengo dos postgres corriendo en distintos servidores, el primero (desarrollo) es
un "PostgreSQL 8.0.4 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)".
El segundo "PostgreSQL 8.2.3 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20061028 (prerelease) (Debian 4.1.1-19)".

Tengo la misma tabla en ambos servidores con la sig definición:

CREATE TABLE pp
(
nomencla char(42),
etiqueta varchar,
)
WITH OIDS;
ALTER TABLE pp OWNER TO postgres;

CREATE INDEX ix_pp_nomencla
ON pp
USING btree
(nomencla);


Ahora bien, cuando realizo la siguiente consulta
set enable_seqscan=off;
select nomencla from pp where nomencla ilike '084010C00000000000000000000000004%'

el explain analyze me arroja lo siguiente para el primer y segundo servidor respectivamente

"Index Scan using ix_pp_nomencla on pp (cost=0.00..6.01 rows=1 width=45) (actual time=91.494..91.494 rows=0 loops=1)"
" Index Cond: ((nomencla >= '084010'::bpchar) AND (nomencla < '084011'::bpchar))"
" Filter: (nomencla ~~* '084010C00000000000000000000000004%'::text)"
"Total runtime: 91.554 ms"

------------------------------------------------------------------------------------------------------------------

"Seq Scan on parcelas (cost=0.00..526753.39 rows=1 width=46) (actual time=6156.038..6156.038 rows=0 loops=1)"
" Filter: (nomencla ~~* '084010C00000000000000000000000004%'::text)"
"Total runtime: 6156.071 ms"

No entiendo por qué en el segundo caso no usa el índice . Cabe aclarar q las tablas en ambos servidores son iguales en contenido y tienen los mismos índices , en la tabla de producción hice vaccum sobre dicha tabla y reindex.
Aún así sigue sin usar el índice, alguién tiene idea de por qué sucede esto? Por qué en el segundo caso no usa el índice?

Gracias












---------------------------------
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
Probalo ya!

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arturo Munive 2007-05-16 18:08:08 Re: Conectar postgresql con sqlserver o "copiar" modelo de sqlserver a postgresql
Previous Message Felipe Amezquita 2007-05-16 17:22:36 rownum en postgres