From: | Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Indices y vistas |
Date: | 2005-10-19 15:10:31 |
Message-ID: | 65746BCC3D99E44998976FD845AD6E6E0DC4602B@MAIL |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenos días a todos.
Tengo la siguiente tabla y vista de mas abajo:
CREATE TABLE tipos
(
id_tipo int8 NOT NULL,
cod_tipo_valido int8 NOT NULL,
cod_tipo int8 NOT NULL,
desc_tipo varchar(30) NOT NULL,
desc_tipo_red varchar(5) NOT NULL,
fec_equipo timestamp NOT NULL,
fec_alta date NOT NULL,
cod_user_alta varchar(8) NOT NULL,
fec_baja date,
cod_user_baja varchar(8),
CONSTRAINT tipos_pk PRIMARY KEY (id_tipo),
)
CREATE UNIQUE INDEX tipos_i0
ON tipos
USING btree
(cod_tipo_valido, cod_tipo);
"700100";"700";"100";"PADRE";"PADRE";"2005-09-26
08:28:27.761";"2005-09-26";"USUARIO";"";""
"700101";"700";"101";"MADRE";"MADRE";"2005-09-26
08:28:53.668";"2005-09-26";"USUARIO";"";""
"700102";"700";"102";"ENCARGADA/O";"TUTOR";"2005-09-26
08:29:11.855";"2005-09-26";"USUARIO";"";""
"700103";"700";"103";"DOCENTES";"DOC";"2005-09-26
00:00:00";"2005-09-26";"USUARIO";"";""
CREATE OR REPLACE VIEW w_entidades AS
SELECT tipos.id_tipo AS id,
tipos.cod_tipo_valido AS codigo,
tipos.cod_tipo AS sub_codigo,
tipos.desc_tipo_red AS desc_red,
tipos.desc_tipo AS descripcion,
tipos.fec_equipo,
tipos.fec_alta,
tipos.cod_user_alta,
tipos.fec_baja,
tipos.cod_user_baja
FROM tipos
WHERE tipos.cod_tipo_valido = 700
ORDER BY tipos.desc_tipo_red;
Bien, con esta estructura de datos, las consultas que tengo son las
siguientes en base a los que arroja el explain analyze de la vista y de un
select directamente a la tabla
explain analyze select * from w_entidades
"Subquery Scan w_entidades (cost=1.71..1.73 rows=1 width=178) (actual
time=0.000..0.000 rows=4 loops=1)"
" -> Sort (cost=1.71..1.72 rows=1 width=178) (actual time=0.000..0.000
rows=4 loops=1)"
" Sort Key: tipos.desc_tipo_red"
" -> Seq Scan on tipos (cost=0.00..1.70 rows=1 width=178) (actual
time=0.000..0.000 rows=4 loops=1)"
" Filter: (cod_tipo_valido = 700)"
"Total runtime: 0.000 ms"
explain analyze SELECT tipos.id_tipo AS id,
tipos.cod_tipo_valido AS codigo,
tipos.cod_tipo AS sub_codigo,
tipos.desc_tipo_red AS desc_red,
tipos.desc_tipo AS descripcion,
tipos.fec_equipo,
tipos.fec_alta,
tipos.cod_user_alta,
tipos.fec_baja,
tipos.cod_user_baja
FROM tipos
WHERE tipos.cod_tipo_valido = 700
ORDER BY tipos.desc_tipo_red;
"Sort (cost=1.71..1.72 rows=1 width=178) (actual time=0.000..0.000 rows=4
loops=1)"
" Sort Key: desc_tipo_red"
" -> Seq Scan on tipos (cost=0.00..1.70 rows=1 width=178) (actual
time=0.000..0.000 rows=4 loops=1)"
" Filter: (cod_tipo_valido = 700)"
"Total runtime: 0.000 ms"
1º Las dos consultas a la base son iguales de optimas?, ya que me llama la
antencion que en el select a la vista detalla:
"Subquery Scan w_entidades (cost=1.71..1.73 rows=1 width=178) (actual
time=0.000..0.000 rows=4 loops=1)"
que el select a la tabla en bruto no aparece.
2º Teniendo un indice por cod_tipo_valido, por que las dos consultas entra
por Seq Scan y no por indice?
Bueno, desde ya, gracias
Saludos,
Conrado
From | Date | Subject | |
---|---|---|---|
Next Message | Dario | 2005-10-19 15:17:37 | RE: linux rh 9, postgres 802 rpms |
Previous Message | Rhona Aponte | 2005-10-19 15:08:54 | Ya no quiero estar suscrita |