2013/7/5 Marcelo da Silva <marc...@ig.com.br> > Tempo os seguintes resultados: > > OPCAO A > > explain select a.* from mv_servicos_balcao a > left join mv_servicos_print b on(cod_key_balcao = a.cod_key) > where (b.cod_key is null) > and(a.obs not in('C')); > > "Hash Right Join (cost=9510.11..17269.55 rows=1 width=136)" > " Hash Cond: (b.cod_key_balcao = a.cod_key)" > " Filter: (b.cod_key IS NULL)" > " -> Seq Scan on mv_servicos_print b (cost=0.00..3746.55 rows=213355 > width=8)" > " -> Hash (cost=7913.20..7913.20 rows=127753 width=136)" > " -> Seq Scan on mv_servicos_balcao a (cost=0.00..7913.20 > rows=127753 width=136)" > " Filter: (obs <> 'C'::bpchar)" > > > OPCAO B > > explain select a.* from mv_servicos_balcao a > where (a.obs not in('C')) > and(a.cod_key not in(select cod_key_balcao from mv_servicos_print)) > > "Seq Scan on mv_servicos_balcao a (cost=4279.94..12516.98 rows=63876 > width=136)" > " Filter: ((obs <> 'C'::bpchar) AND (NOT (hashed SubPlan 1)))" > " SubPlan 1" > " -> Seq Scan on mv_servicos_print (cost=0.00..3746.55 rows=213355 > width=4)" > > > Vou ser sincero... não sei fazer a leitura do explain, mas pelo que vi a > segunda opção se mostrou mais eficiente, haja visto que sem o explain temos > os seguintes valores em ms(milisegundos) > > OPCAO A = 571 rows e 496ms > OPCAO B = 571 rows e 300ms > > Possível. Mas para termos mais certeza, faça o seguinte:
VACUUM ANALYZE mv_servicos_balcao; VACUUM ANALYZE mv_servicos_print; Em seguida, rode novamente as queries, mas ao invés de apenas explain use: EXPLAIN (ANALYZE, BUFFERS) SELECT ... ; E rode pelo menos duas vezes cada para evitar efeitos de cache (o ideal seria executar um restart, mas 2 execuções deve dar um bom retorno). Mito detonado ? rsrsrs > > Qual o mito afinal? xD Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral