explain.depesz.com

PostgreSQL's explain analyze made readable

Result: y2Yt

Settings
# exclusive inclusive rows x rows loops node
1. 0.050 57.462 ↑ 1.0 1 1

Limit (cost=11.01..11.59 rows=1 width=826) (actual time=57.414..57.462 rows=1 loops=1)

  • Output: conta.uf_fk, cnpj.programa_fk, conta.atividade_fk, conta.fonte_fk, programa.nome, atividade.nome, fonte.nome, (CASE WHEN (length(btrim((agente.cpf_cnpj)::text)) > 11) THEN sigest.fc_formatar(agente.cpf_cnpj, 'cnpj'::character varying) ELSE sigest.fc_formatar(agente.cpf_cnpj, 'CPF'::character varying) END), endereco_agente.inscricao_estadual, cnpj.unidade_gestora_centralizadora, adb.cda, produto.codigo, uf.nome, produto.nome, ((((produto.codigo)::text || ' - '::text) || (produto.nome)::text)), estoque.id, estoque.codigo_cpr, adb.status, programa.codigo, atividade.codigo, fonte.codigo
  • Buffers: shared hit=1095
2. 0.130 57.412 ↑ 5,941,039.0 1 1

Nested Loop (cost=11.01..3,447,474.14 rows=5,941,039 width=826) (actual time=57.410..57.412 rows=1 loops=1)

  • Output: conta.uf_fk, cnpj.programa_fk, conta.atividade_fk, conta.fonte_fk, programa.nome, atividade.nome, fonte.nome, CASE WHEN (length(btrim((agente.cpf_cnpj)::text)) > 11) THEN sigest.fc_formatar(agente.cpf_cnpj, 'cnpj'::character varying) ELSE sigest.fc_formatar(agente.cpf_cnpj, 'CPF'::character varying) END, endereco_agente.inscricao_estadual, cnpj.unidade_gestora_centralizadora, adb.cda, produto.codigo, uf.nome, produto.nome, (((produto.codigo)::text || ' - '::text) || (produto.nome)::text), estoque.id, estoque.codigo_cpr, adb.status, programa.codigo, atividade.codigo, fonte.codigo
  • Buffers: shared hit=1095
3. 0.008 55.378 ↑ 832.0 1 1

Nested Loop (cost=8.86..396,259.46 rows=832 width=294) (actual time=55.377..55.378 rows=1 loops=1)

  • Output: estoque.id, estoque.codigo_cpr, produto.codigo, produto.nome, conta.uf_fk, conta.atividade_fk, conta.fonte_fk, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo, vinculo.agente_corporativo_fk, uf.nome, agente.cpf_cnpj, agente.id, adb.cda, adb.status
  • Buffers: shared hit=1095
4. 0.009 53.545 ↑ 277.0 1 1

Nested Loop Left Join (cost=6.70..393,807.74 rows=277 width=254) (actual time=53.543..53.545 rows=1 loops=1)

  • Output: estoque.id, estoque.codigo_cpr, produto.codigo, produto.nome, conta.uf_fk, conta.atividade_fk, conta.fonte_fk, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo, vinculo.agente_corporativo_fk, uf.nome, adb.cda, adb.status
  • Buffers: shared hit=1095
5. 0.004 38.132 ↑ 250.0 1 1

Nested Loop (cost=1.42..379,732.24 rows=250 width=202) (actual time=38.130..38.132 rows=1 loops=1)

  • Output: estoque.id, estoque.codigo_cpr, estoque.codigo_cda, produto.codigo, produto.nome, conta.uf_fk, conta.atividade_fk, conta.fonte_fk, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo, vinculo.agente_corporativo_fk, uf.nome
  • Buffers: shared hit=1095
6. 0.986 36.806 ↑ 250.0 1 1

Nested Loop (cost=0.42..379,726.76 rows=250 width=163) (actual time=36.804..36.806 rows=1 loops=1)

  • Output: estoque.id, estoque.codigo_cpr, estoque.codigo_cda, produto.codigo, produto.nome, conta.uf_fk, conta.atividade_fk, conta.fonte_fk, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo, vinculo.agente_corporativo_fk
  • Inner Unique: true
  • Join Filter: (estoque.produto_fk = produto.id)
  • Rows Removed by Join Filter: 1305
  • Buffers: shared hit=1095
7. 0.010 32.364 ↑ 250.0 1 1

Nested Loop (cost=0.42..370,618.91 rows=250 width=119) (actual time=32.363..32.364 rows=1 loops=1)

  • Output: estoque.id, estoque.codigo_cpr, estoque.produto_fk, estoque.codigo_cda, conta.uf_fk, conta.atividade_fk, conta.fonte_fk, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo, vinculo.agente_corporativo_fk
  • Buffers: shared hit=1004
8. 16.603 32.241 ↑ 1.0 1 1

Nested Loop (cost=0.00..21,455.42 rows=1 width=88) (actual time=32.239..32.241 rows=1 loops=1)

  • Output: conta.uf_fk, conta.atividade_fk, conta.fonte_fk, conta.id, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo, vinculo.agente_corporativo_fk
  • Inner Unique: true
  • Join Filter: (cnpj.vinculo_sigest_fk = vinculo.id)
  • Rows Removed by Join Filter: 18585
  • Buffers: shared hit=993
9. 0.002 0.131 ↑ 1.0 1 1

Nested Loop (cost=0.00..27.49 rows=1 width=88) (actual time=0.129..0.131 rows=1 loops=1)

  • Output: conta.uf_fk, conta.atividade_fk, conta.fonte_fk, conta.id, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, cnpj.vinculo_sigest_fk, programa.nome, programa.codigo, atividade.nome, atividade.codigo, fonte.nome, fonte.codigo
  • Buffers: shared hit=7
10. 0.001 0.122 ↑ 1.0 1 1

Nested Loop (cost=0.00..26.39 rows=1 width=80) (actual time=0.121..0.122 rows=1 loops=1)

  • Output: conta.uf_fk, conta.atividade_fk, conta.fonte_fk, conta.id, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, cnpj.vinculo_sigest_fk, programa.nome, programa.codigo, atividade.nome, atividade.codigo
  • Buffers: shared hit=6
11. 0.002 0.111 ↑ 1.0 1 1

Nested Loop (cost=0.00..25.22 rows=1 width=61) (actual time=0.110..0.111 rows=1 loops=1)

  • Output: conta.uf_fk, conta.atividade_fk, conta.fonte_fk, conta.id, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, cnpj.vinculo_sigest_fk, programa.nome, programa.codigo
  • Buffers: shared hit=5
12. 0.023 0.100 ↑ 1.0 1 1

Nested Loop (cost=0.00..24.16 rows=1 width=49) (actual time=0.099..0.100 rows=1 loops=1)

  • Output: conta.uf_fk, conta.atividade_fk, conta.fonte_fk, conta.id, cnpj.programa_fk, cnpj.unidade_gestora_centralizadora, cnpj.vinculo_sigest_fk
  • Inner Unique: true
  • Join Filter: (conta.cnpj_fk = cnpj.id)
  • Rows Removed by Join Filter: 3
  • Buffers: shared hit=4
13. 0.061 0.061 ↑ 1.0 1 1

Seq Scan on sigest.tb_conta conta (cost=0.00..14.47 rows=1 width=35) (actual time=0.060..0.061 rows=1 loops=1)

  • Output: conta.id, conta.uf_fk, conta.cnpj_fk, conta.atividade_fk, conta.fonte_fk, conta.pgpm, conta.estoque_por_preco, conta.controlar_validade, conta.id_antigo, conta.uf_antigo
  • Filter: ((conta.atividade_fk = 11) AND (conta.fonte_fk = 2) AND ((conta.uf_fk)::text = 'PR'::text))
  • Rows Removed by Filter: 244
  • Buffers: shared hit=3
14. 0.016 0.016 ↑ 6.8 4 1

Seq Scan on sigest.tb_cnpj cnpj (cost=0.00..9.35 rows=27 width=30) (actual time=0.008..0.016 rows=4 loops=1)

  • Output: cnpj.id, cnpj.programa_fk, cnpj.vinculo_sigest_fk, cnpj.documento_fiscal_fk, cnpj.documento_fiscal_scan_fk, cnpj.numero_nota, cnpj.numero_nota_scan, cnpj.data_movimentacao, cnpj.data_escrituracao, cnpj.paginacao_registro_entrada, cnpj.paginacao_registro_saida, cnpj.paginacao_registro_apuracao_fiscal, cnpj.paginacao_registro_inventario, cnpj.orgao_centralizador, cnpj.sub_orgao_centralizador, cnpj.unidade_gestora_centralizadora, cnpj.legislacao_fiscal, cnpj.emitir_nota_fiscal_homologacao, cnpj.id_antigo, cnpj.uf_antigo, cnpj.numero_nota_no, cnpj.numero_nota_nli
  • Filter: (cnpj.programa_fk = 4)
  • Rows Removed by Filter: 7
  • Buffers: shared hit=1
15. 0.009 0.009 ↑ 1.0 1 1

Seq Scan on sigest.tb_programa programa (cost=0.00..1.05 rows=1 width=20) (actual time=0.008..0.009 rows=1 loops=1)

  • Output: programa.id, programa.codigo, programa.nome, programa.descricao
  • Filter: (programa.id = 4)
  • Rows Removed by Filter: 3
  • Buffers: shared hit=1
16. 0.010 0.010 ↑ 1.0 1 1

Seq Scan on sigest.tb_atividade atividade (cost=0.00..1.16 rows=1 width=27) (actual time=0.008..0.010 rows=1 loops=1)

  • Output: atividade.id, atividade.codigo, atividade.nome
  • Filter: (atividade.id = 11)
  • Rows Removed by Filter: 10
  • Buffers: shared hit=1
17. 0.007 0.007 ↑ 1.0 1 1

Seq Scan on sigest.tb_fonte fonte (cost=0.00..1.09 rows=1 width=16) (actual time=0.006..0.007 rows=1 loops=1)

  • Output: fonte.id, fonte.codigo, fonte.nome
  • Filter: (fonte.id = 2)
  • Rows Removed by Filter: 1
  • Buffers: shared hit=1
18. 15.507 15.507 ↑ 21.1 18,586 1

Seq Scan on sigest.tb_vinculo_sigest vinculo (cost=0.00..16,535.75 rows=391,375 width=16) (actual time=0.012..15.507 rows=18,586 loops=1)

  • Output: vinculo.id, vinculo.agente_corporativo_fk, vinculo.fantasia, vinculo.fisica_juridica, vinculo.produtor_rural, vinculo.transportadora, vinculo.contribuinte, vinculo.conab, vinculo.optante, vinculo.suframa, vinculo.ix_endereco_principal, vinculo.id_antigo, vinculo.uf_antigo, vinculo.tipo_tributacao
  • Buffers: shared hit=986
19. 0.039 0.113 ↑ 2,075.0 1 1

Index Scan using idx_tb_estoque_conta_fk on sigest.tb_estoque estoque (cost=0.42..349,142.73 rows=2,075 width=47) (actual time=0.112..0.113 rows=1 loops=1)

  • Output: estoque.id, estoque.conta_fk, estoque.produto_fk, estoque.codigo_cda, estoque.codigo_cpr, estoque.safra, estoque.classificacao, estoque.acondicionamento, estoque.unidade_medida, estoque.lote, estoque.ean, estoque.data_validade, estoque.data_distribuicao, estoque.data_fabricacao, estoque.valor_unitario, estoque.valor_unitario_sede, estoque.custo_liquido, estoque.custo_liquido_sede, estoque.volume, estoque.volume_sede, estoque.quantidade, estoque.quantidade_sede, estoque.quantidade_reservado, estoque.status, estoque.data_fechamento, estoque.rendimento, estoque.fechado, estoque.id_antigo, estoque.uf_antigo, estoque.libera_estoque_data_vencida, estoque.codigo_contrato
  • Index Cond: (estoque.conta_fk = conta.id)
  • Filter: ((SubPlan 1) <> '0'::numeric)
  • Buffers: shared hit=11
20.          

SubPlan (for Index Scan)

21. 0.006 0.074 ↑ 1.0 1 1

Limit (cost=166.53..166.54 rows=1 width=21) (actual time=0.068..0.074 rows=1 loops=1)

  • Output: tb_kardex.saldo_quantidade, tb_kardex.data, tb_kardex.id
  • Buffers: shared hit=7
22. 0.032 0.068 ↑ 60.0 1 1

Sort (cost=166.53..166.68 rows=60 width=21) (actual time=0.066..0.068 rows=1 loops=1)

  • Output: tb_kardex.saldo_quantidade, tb_kardex.data, tb_kardex.id
  • Sort Key: tb_kardex.data DESC, tb_kardex.id DESC
  • Sort Method: top-N heapsort Memory: 25kB
  • Buffers: shared hit=7
23. 0.036 0.036 ↑ 10.0 6 1

Index Scan using idx_tb_kardex_estoque_fk on sigest.tb_kardex (cost=0.43..166.23 rows=60 width=21) (actual time=0.021..0.036 rows=6 loops=1)

  • Output: tb_kardex.saldo_quantidade, tb_kardex.data, tb_kardex.id
  • Index Cond: (tb_kardex.estoque_fk = estoque.id)
  • Filter: (tb_kardex.tipo_armazenagem AND (tb_kardex.data <= '2019-08-09 00:00:00'::timestamp without time zone) AND (tb_kardex.tipo <> '9'::bpchar))
  • Rows Removed by Filter: 3
  • Buffers: shared hit=7
24. 2.096 3.456 ↑ 1.8 1,306 1

Materialize (cost=0.00..158.82 rows=2,388 width=60) (actual time=0.020..3.456 rows=1,306 loops=1)

  • Output: produto.codigo, produto.nome, produto.id
  • Buffers: shared hit=91
25. 1.360 1.360 ↑ 1.8 1,306 1

Seq Scan on sigest.tb_produto produto (cost=0.00..146.88 rows=2,388 width=60) (actual time=0.015..1.360 rows=1,306 loops=1)

  • Output: produto.codigo, produto.nome, produto.id
  • Buffers: shared hit=91
26. 0.006 1.322 ↑ 1.0 1 1

Materialize (cost=1.00..2.36 rows=1 width=13) (actual time=1.320..1.322 rows=1 loops=1)

  • Output: uf.nome, uf.sigla
27. 1.316 1.316 ↑ 1.0 1 1

Foreign Scan on public.tb_uf uf (cost=1.00..2.35 rows=1 width=13) (actual time=1.314..1.316 rows=1 loops=1)

  • Output: uf.nome, uf.sigla
  • Remote SQL: SELECT sigla, nome FROM public.tb_uf WHERE ((sigla::text = 'PR'::text))
28. 15.404 15.404 ↑ 2.0 1 1

Foreign Scan on public.vw_armazem_dados_basicos_sem_contato adb (cost=5.28..56.28 rows=2 width=64) (actual time=15.403..15.404 rows=1 loops=1)

  • Output: adb.idarmazem, adb.cda, adb.cda_formatado, adb.lat, adb.lon, adb.id_meso, adb.nome_meso, adb.micro_regiao_fk, adb.cnpj_cpf, adb.idarmazenador, adb.armazenador, adb.endereco, adb.bairro, adb.idmunicipio, adb.municipio, adb.uf, adb.cep, adb.inscricao_estadual, adb.codigo_empresa, adb.especie, adb.tipo, adb.formapiso, adb.situacao, adb.cap, adb.polocompra, adb.polosatelite, adb.contratoativo, adb.status
  • Remote SQL: SELECT cda, status FROM public.vw_armazem_dados_basicos_sem_contato WHERE ((cda::text = $1::character varying(11)::text))
29. 1.825 1.825 ↑ 1.0 1 1

Foreign Scan on public.vw_agente agente (cost=2.16..8.84 rows=1 width=40) (actual time=1.824..1.825 rows=1 loops=1)

  • Output: agente.id, agente.nome, agente.nome_fantasia, agente.cpf_cnpj
  • Remote SQL: SELECT id, cpf_cnpj FROM public.vw_agente WHERE (($1::bigint = id))
30. 1.904 1.904 ↑ 1.0 1 1

Foreign Scan on public.vw_endereco_agente endereco_agente (cost=2.15..7.72 rows=1 width=15) (actual time=1.903..1.904 rows=1 loops=1)

  • Output: endereco_agente.id, endereco_agente.endereco, endereco_agente.numero, endereco_agente.bairro, endereco_agente.complemento, endereco_agente.cep, endereco_agente.inscricao_estadual, endereco_agente.municipio, endereco_agente.codigo_ibge, endereco_agente.uf, endereco_agente.agente_fk, endereco_agente.email, endereco_agente.telefone
  • Remote SQL: SELECT inscricao_estadual, agente_fk FROM public.vw_endereco_agente WHERE (($1::bigint = agente_fk))
Planning time : 59.233 ms
Execution time : 60.431 ms