El 22 de octubre de 2010 13:32, Alvaro Herrera <alvhe...@commandprompt.com>escribió:
> Excerpts from Julio Cesar Rodriguez Dominguez's message of vie oct 22 > 15:25:03 -0300 2010: > > > base_revis...@servidor.no-ip.org=# EXPLAIN ANALYZE select idcliente from > > cc_clientes c inner join cc_estados e using(idestado) > > ¿para qué va a usar el índice si va a tener que recorrer la tabla > completa? > Ok entiendo que va a recorrer toda la tabla de clientes, pero también debe recorrer toda la tabla de estados?, no debería ser algo como: base_revis...@servidor.no-ip.org=# EXPLAIN ANALYZE select estado from cc_clientes c inner join cc_estados e using(idestado) where idcliente = 2; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------- Nested Loop (cost=0.00..16.55 rows=1 width=32) (actual time=0.039..0.043 rows=1 loops=1) -> Index Scan using cc_clientes_pkey on cc_clientes c (cost=0.00..8.27 rows=1 width=4) (actual time=0.013..0.014 rows=1 loops=1) Index Cond: (idcliente = 2) -> Index Scan using cc_estados_pkey on cc_estados e (cost=0.00..8.27 rows=1 width=36) (actual time=0.021..0.023 rows=1 loops=1) Index Cond: (e.idestado = c.idestado) Total runtime: 0.080 ms (6 filas) entiendo que aquí usa el indice de la tabla de estados, pero este resultado lo obtuve con set enable_seqscan to off; , regresandolo a on: revis...@servidor.no-ip.org=# EXPLAIN ANALYZE select estado from cc_clientes c inner join cc_estados e using(idestado) where idcliente = 2; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------- Hash Join (cost=8.28..9.77 rows=1 width=32) (actual time=0.082..0.088 rows=1 loops=1) Hash Cond: (e.idestado = c.idestado) -> Seq Scan on cc_estados e (cost=0.00..1.35 rows=35 width=36) (actual time=0.003..0.020 rows=35 loops=1) -> Hash (cost=8.27..8.27 rows=1 width=4) (actual time=0.035..0.035 rows=1 loops=1) -> Index Scan using cc_clientes_pkey on cc_clientes c (cost=0.00..8.27 rows=1 width=4) (actual time=0.032..0.033 rows=1 loops=1) Index Cond: (idcliente = 2) Total runtime: 0.115 ms (7 filas) discúlpame si estoy siendo muy ingenuo.