explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 0fsY

Settings
# exclusive inclusive rows x rows loops node
1. 0.035 25,742.569 ↑ 1.0 1 1

Limit (cost=400.08..400.10 rows=1 width=62) (actual time=25,742.536..25,742.569 rows=1 loops=1)

  • Output: vw.doc_emitente, vw.categoria, ((SubPlan 1)), (COALESCE(((SubPlan 2)), '0'::numeric))
2. 0.003 25,742.534 ↑ 1.0 1 1

Unique (cost=400.08..400.10 rows=1 width=62) (actual time=25,742.532..25,742.534 rows=1 loops=1)

  • Output: vw.doc_emitente, vw.categoria, ((SubPlan 1)), (COALESCE(((SubPlan 2)), '0'::numeric))
3. 0.040 25,742.531 ↑ 1.0 1 1

Sort (cost=400.08..400.09 rows=1 width=62) (actual time=25,742.529..25,742.531 rows=1 loops=1)

  • Output: vw.doc_emitente, vw.categoria, ((SubPlan 1)), (COALESCE(((SubPlan 2)), '0'::numeric))
  • Sort Key: vw.categoria, ((SubPlan 1)), (COALESCE(((SubPlan 2)), '0'::numeric))
  • Sort Method: quicksort Memory: 25kB
4. 0.083 25,742.491 ↓ 4.0 4 1

Nested Loop (cost=1.11..400.07 rows=1 width=62) (actual time=6,477.749..25,742.491 rows=4 loops=1)

  • Output: vw.doc_emitente, vw.categoria, (SubPlan 1), COALESCE(((SubPlan 2)), '0'::numeric)
5. 97.272 97.272 ↓ 4.0 4 1

Index Scan using idx_rel_finan_nota_fiscal_composto3 on sigest.vw_rel_finan_nota_fiscal vw (cost=0.56..62.39 rows=1 width=24) (actual time=86.658..97.272 rows=4 loops=1)

  • Output: vw.uf_fk, vw.nome_estado, vw.programa_fk, vw.codigo_programa, vw.atividade_fk, vw.codigo_atividade, vw.fonte_fk, vw.codigo_fonte, vw.descricao_conta, vw.descricao, vw.data_gravacao, vw.data_cancelamento, vw.doc_emitente, vw.nome_emitente, vw.cda, vw.doc_destinatario, vw.nome_destinatario, vw.codigo, vw.nome, vw.numero_nota_fiscal, vw.categoria, vw.es_case, vw.valor_total_nota_fiscal, vw.valor_icms, vw.valor_custo, vw.tipo_operacao
  • Index Cond: (((vw.uf_fk)::text = 'PR'::text) AND (vw.programa_fk = '3'::bigint) AND (vw.atividade_fk = '4'::bigint) AND (vw.fonte_fk = '2'::bigint) AND ((vw.doc_emitente)::text = '26461699032546'::text))
  • Filter: ((vw.tipo_operacao <> '9'::bpchar) AND ((date(vw.data_gravacao) = '2019-03-15'::date) OR (date(vw.data_cancelamento) = '2019-03-15'::date)))
  • Rows Removed by Filter: 7395
6. 0.056 25,590.996 ↑ 1.0 1 4

Subquery Scan on temp (cost=0.56..62.65 rows=1 width=46) (actual time=6,380.810..6,397.749 rows=1 loops=4)

  • Output: temp.cnpj_cpf, (SubPlan 2)
7. 0.056 184.128 ↑ 1.0 1 4

Unique (cost=0.56..62.38 rows=1 width=14) (actual time=29.096..46.032 rows=1 loops=4)

  • Output: vw_1.doc_emitente
8. 184.072 184.072 ↓ 7.0 7 4

Index Only Scan using idx_rel_finan_nota_fiscal_composto3 on sigest.vw_rel_finan_nota_fiscal vw_1 (cost=0.56..62.38 rows=1 width=14) (actual time=29.090..46.018 rows=7 loops=4)

  • Output: vw_1.doc_emitente
  • Index Cond: ((vw_1.uf_fk = 'PR'::text) AND (vw_1.programa_fk = '3'::bigint) AND (vw_1.atividade_fk = '4'::bigint) AND (vw_1.fonte_fk = '2'::bigint) AND (vw_1.doc_emitente = '26461699032546'::text))
  • Filter: ((date(vw_1.data_gravacao) = '2019-03-15'::date) OR (date(vw_1.data_cancelamento) = '2019-03-15'::date))
  • Rows Removed by Filter: 7392
  • Heap Fetches: 29596
9.          

SubPlan (forSubquery Scan)

10. 25,406.812 25,406.812 ↑ 1.0 1 4

Result (cost=0.00..0.26 rows=1 width=32) (actual time=6,351.701..6,351.703 rows=1 loops=4)

  • Output: sigest.fc_saldo_movimento_anterior_finan('PR'::character varying, '3'::bigint, '4'::bigint, '2'::bigint, temp.cnpj_cpf, '2019-03-15'::date)
11.          

SubPlan (forNested Loop)

12. 0.064 54.140 ↑ 1.0 1 4

Limit (cost=275.01..275.01 rows=1 width=8) (actual time=13.522..13.535 rows=1 loops=4)

  • Output: tb_finan_movimento_anterior.data_movimento
13. 9.096 54.076 ↑ 1.0 1 4

Sort (cost=275.01..275.01 rows=1 width=8) (actual time=13.518..13.519 rows=1 loops=4)

  • Output: tb_finan_movimento_anterior.data_movimento
  • Sort Key: tb_finan_movimento_anterior.data_movimento DESC
  • Sort Method: top-N heapsort Memory: 25kB
14. 15.424 44.980 ↓ 2,512.0 2,512 4

Result (cost=244.93..275.00 rows=1 width=8) (actual time=3.560..11.245 rows=2,512 loops=4)

  • Output: tb_finan_movimento_anterior.data_movimento
  • One-Time Filter: (vw.tipo_operacao <> '9'::bpchar)
15. 16.080 29.556 ↓ 2,512.0 2,512 4

Bitmap Heap Scan on sigest.tb_finan_movimento_anterior (cost=244.93..275.00 rows=1 width=8) (actual time=3.548..7.389 rows=2,512 loops=4)

  • Output: tb_finan_movimento_anterior.id_conta, tb_finan_movimento_anterior.doc_emitente, tb_finan_movimento_anterior.uf_fk, tb_finan_movimento_anterior.programa_fk, tb_finan_movimento_anterior.atividade_fk, tb_finan_movimento_anterior.fonte_fk, tb_finan_movimento_anterior.id_estoque, tb_finan_movimento_anterior.data_referencia, tb_finan_movimento_anterior.data_movimento, tb_finan_movimento_anterior.saldo_custo, tb_finan_movimento_anterior.saldo_quantidade
  • Recheck Cond: (((tb_finan_movimento_anterior.doc_emitente)::text = (vw.doc_emitente)::text) AND ((tb_finan_movimento_anterior.uf_fk)::text = 'PR'::text))
  • Filter: ((tb_finan_movimento_anterior.programa_fk = '3'::bigint) AND (tb_finan_movimento_anterior.atividade_fk = '4'::bigint) AND (tb_finan_movimento_anterior.fonte_fk = '2'::bigint) AND (date(tb_finan_movimento_anterior.data_movimento) < '2019-03-15'::date))
  • Rows Removed by Filter: 4625
  • Heap Blocks: exact=456
16. 0.088 13.476 ↓ 0.0 0 4

BitmapAnd (cost=244.93..244.93 rows=20 width=0) (actual time=3.368..3.369 rows=0 loops=4)

17. 3.328 3.328 ↓ 13.2 7,137 4

Bitmap Index Scan on idx_finan_movimento_anterior_doc_emitente (cost=0.00..8.98 rows=541 width=0) (actual time=0.831..0.832 rows=7,137 loops=4)

  • Index Cond: ((tb_finan_movimento_anterior.doc_emitente)::text = (vw.doc_emitente)::text)
18. 10.060 10.060 ↓ 1.0 21,068 4

Bitmap Index Scan on idx_finan_movimento_anterior_uf_fk (cost=0.00..235.69 rows=20,169 width=0) (actual time=2.513..2.515 rows=21,068 loops=4)

  • Index Cond: ((tb_finan_movimento_anterior.uf_fk)::text = 'PR'::text)
Planning time : 1.179 ms