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