From: | "Linder Poclaba" <linder(dot)poclaba(at)gmail(dot)com> |
---|---|
To: | "lista postrges" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Ayuda a interpretar resultado EXPLAIN ANALYZE |
Date: | 2006-10-20 17:14:51 |
Message-ID: | 5aa69e1b0610201014x22f5c1a3l89c076f428ae9426@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola amigos de las lista.
No sé si me podrian colaborar en la interpretación del resultado que me vota
EXPLAIN ANALYZE de las siguientes consultas y escoger la correcta, o alguna
otra sugerencias es bienvenida:
Tablas involucradas
rubro
Columna | Tipo | Modificadores
-------------+-----------------------+---------------
idrubro | integer | not null
descripcion | character varying(50) |
Índices:
"rubro_pkey" llave primaria, btree (idrubro)
formulario
Columna | Tipo | Modificadores
--------------+-----------------------+---------------
idformulario | integer | not null
nombre | character varying(25) |
Índices:
"formulario_pkey" llave primaria, btree (idformulario)
pliego
Columna | Tipo | Modificadores
--------------------+-------------------+---------------
idpliego | integer | not null
mesa_idmesa | integer | not null
descripcion | character varying |
plazo_referencial | integer |
adjudicado | boolean |
distrito | character varying |
cod_pliego | character varying |
precio_referencial | real |
rubro_idrubro | integer |
Índices:
"pliego_pkey" llave primaria, btree (idpliego)
Restricciones de llave foránea:
"$1" FOREIGN KEY (mesa_idmesa) REFERENCES mesa(idmesa)
"fk_rubro" FOREIGN KEY (rubro_idrubro) REFERENCES rubro(idrubro) ON
UPDATE RESTRICT ON DELETE RESTRICT
rubro_formulario
Columna | Tipo | Modificadores
-------------------------+---------+---------------
idrubro_formulario | integer | not null
formulario_idformulario | integer |
rubro_idrubro | integer |
Índices:
"rubro_formulario_pkey" llave primaria, btree (idrubro_formulario)
Restricciones de llave foránea:
"$1" FOREIGN KEY (formulario_idformulario) REFERENCES
formulario(idformulario)
"$2" FOREIGN KEY (rubro_idrubro) REFERENCES rubro(idrubro)
como parametros de la consulta tengo el id del pliego(un pliego pertenece a
un determinado rubro y un rubro puede tener muchos pliegos), y se quiere
mostrar todos los formularios para ese pliego, la relacion de rubro y pliego
es de muchos a muchos.
las consultas son:
explain analyze select * from formulario where idformulario in (select
formulario_idformulario from rubro_formulario where rubro_idrubro in (SELECT
rubro_idrubro from pliego where idpliego=14));
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------
Nested Loop IN Join (cost=0.00..1.26 rows=1 width=59) (actual time=
0.094..0.416 rows=3 loops=1)
Join Filter: ("outer".idformulario = "inner".formulario_idformulario)
-> Seq Scan on formulario (cost=0.00..0.00 rows=1 width=59) (actual
time=0.012..0.045 rows=5 loops=1)
-> Nested Loop IN Join (cost=0.00..1.25 rows=1 width=4) (actual time=
0.025..0.058 rows=2 loops=5)
Join Filter: ("outer".rubro_idrubro = "inner".rubro_idrubro)
-> Seq Scan on rubro_formulario (cost=0.00..0.00 rows=1 width=8)
(actual time=0.004..0.010 rows=2 loops=5)
-> Seq Scan on pliego (cost=0.00..1.24 rows=1 width=4) (actual
time=0.010..0.010 rows=1 loops=12)
Filter: (idpliego = 14)
Total runtime: 0.502 ms
(9 filas)
la otra:
explain analyze SELECT f.idformulario,f.nombre from formulario f join
rubro_formulario rf on f.idformulario = rf.formulario_idformulario join
pliego p on p.rubro_idrubro=rf.rubro_idrubro where p.idpliego=14 order by
f.idformulario;
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------
Sort (cost=1.27..1.28 rows=1 width=59) (actual time=0.313..0.321 rows=3
loops=1)
Sort Key: f.idformulario
-> Nested Loop (cost=0.00..1.26 rows=1 width=59) (actual time=
0.089..0.284 rows=3 loops=1)
Join Filter: ("inner".idformulario =
"outer".formulario_idformulario)
-> Nested Loop (cost=0.00..1.25 rows=1 width=4) (actual time=
0.047..0.143 rows=3 loops=1)
Join Filter: ("inner".rubro_idrubro = "outer".rubro_idrubro)
-> Seq Scan on rubro_formulario rf (cost=0.00..0.00 rows=1
width=8) (actual time=0.011..0.020 rows=3 loops=1)
-> Seq Scan on pliego p (cost=0.00..1.24 rows=1 width=4)
(actual time=0.013..0.025 rows=1 loops=3)
Filter: (idpliego = 14)
-> Seq Scan on formulario f (cost=0.00..0.00 rows=1 width=59)
(actual time=0.004..0.020 rows=5 loops=3)
Total runtime: 0.410 ms
(11 filas)
desde ya muchas gracias :)
--
Linder Poclaba Lázaro.
Desarrollador Key Optimal Solutions - KEYOS.
Usa Software Libre y obtiene tú libertad.
From | Date | Subject | |
---|---|---|---|
Next Message | Pedro Mateo | 2006-10-20 17:56:34 | ya hice mi primera funcion |
Previous Message | Alvaro Herrera | 2006-10-20 14:42:20 | Re: Reglas/Triggers |