explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 7HXfL

Settings
# exclusive inclusive rows x rows loops node
1. 0.008 6,528.534 ↓ 2.0 2 1

Unique (cost=2,332.63..2,332.64 rows=1 width=132) (actual time=6,528.526..6,528.534 rows=2 loops=1)

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador, ((((sigest.fc_formatar(view_armazem_dados_basicos.cnpj_cpf, 'cnpj'::character varying))::text || ' - '::text) || (view_armazem_dados_basicos.armazenador)::text))
2. 0.018 6,528.526 ↓ 2.0 2 1

Sort (cost=2,332.63..2,332.64 rows=1 width=132) (actual time=6,528.523..6,528.526 rows=2 loops=1)

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador, ((((sigest.fc_formatar(view_armazem_dados_basicos.cnpj_cpf, 'cnpj'::character varying))::text || ' - '::text) || (view_armazem_dados_basicos.armazenador)::text))
  • Sort Key: view_armazem_dados_basicos.armazenador, view_armazem_dados_basicos.cnpj_cpf, ((((sigest.fc_formatar(view_armazem_dados_basicos.cnpj_cpf, 'cnpj'::character varying))::text || ' - '::text) || (view_armazem_dados_basicos.armazenador)::text))
  • Sort Method: quicksort Memory: 25kB
3. 0.077 6,528.508 ↓ 2.0 2 1

Group (cost=2,332.36..2,332.62 rows=1 width=132) (actual time=6,528.494..6,528.508 rows=2 loops=1)

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador, (((sigest.fc_formatar(view_armazem_dados_basicos.cnpj_cpf, 'cnpj'::character varying))::text || ' - '::text) || (view_armazem_dados_basicos.armazenador)::text)
  • Group Key: view_armazem_dados_basicos.armazenador, view_armazem_dados_basicos.cnpj_cpf
4. 0.024 6,528.431 ↓ 2.0 2 1

Sort (cost=2,332.36..2,332.36 rows=1 width=100) (actual time=6,528.428..6,528.431 rows=2 loops=1)

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador
  • Sort Key: view_armazem_dados_basicos.armazenador, view_armazem_dados_basicos.cnpj_cpf
  • Sort Method: quicksort Memory: 25kB
5. 1.710 6,528.407 ↓ 2.0 2 1

Nested Loop (cost=282.59..2,332.35 rows=1 width=100) (actual time=6,445.536..6,528.407 rows=2 loops=1)

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador
6. 0.018 6,365.861 ↓ 2.0 2 1

Nested Loop (cost=276.18..2,302.66 rows=1 width=12) (actual time=6,362.715..6,365.861 rows=2 loops=1)

  • Output: estoque.codigo_cda
7. 0.010 6,365.817 ↓ 2.0 2 1

Nested Loop (cost=276.18..2,301.60 rows=1 width=20) (actual time=6,362.697..6,365.817 rows=2 loops=1)

  • Output: estoque.codigo_cda, cnpj.programa_fk
  • Inner Unique: true
8. 0.011 6,365.795 ↓ 2.0 2 1

Nested Loop (cost=276.04..2,301.30 rows=1 width=28) (actual time=6,362.683..6,365.795 rows=2 loops=1)

  • Output: conta.atividade_fk, estoque.codigo_cda, cnpj.programa_fk
  • Inner Unique: true
9. 0.014 6,365.760 ↓ 2.0 2 1

Nested Loop (cost=275.77..2,300.75 rows=1 width=28) (actual time=6,362.662..6,365.760 rows=2 loops=1)

  • Output: conta.cnpj_fk, conta.atividade_fk, estoque.codigo_cda
  • Inner Unique: true
10. 1.745 6,365.728 ↓ 2.0 2 1

Nested Loop (cost=275.64..2,300.44 rows=1 width=36) (actual time=6,362.644..6,365.728 rows=2 loops=1)

  • Output: estoque.codigo_cda, conta.cnpj_fk, conta.atividade_fk, conta.fonte_fk
  • Join Filter: (estoque.conta_fk = conta.id)
  • Rows Removed by Join Filter: 1942
11. 0.047 0.047 ↑ 1.0 18 1

Index Scan using idx_conta_uf_fk_atividade_fk_conta_fk on sigest.tb_conta conta (cost=0.27..8.23 rows=18 width=32) (actual time=0.019..0.047 rows=18 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
  • Index Cond: ((conta.uf_fk)::text = 'ES'::text)
12. 1.862 6,363.936 ↓ 10.8 108 18

Materialize (cost=275.37..2,289.54 rows=10 width=20) (actual time=252.934..353.552 rows=108 loops=18)

  • Output: estoque.codigo_cda, estoque.conta_fk
13. 0.249 6,362.074 ↓ 10.8 108 1

Nested Loop (cost=275.37..2,289.49 rows=10 width=20) (actual time=4,552.789..6,362.074 rows=108 loops=1)

  • Output: estoque.codigo_cda, estoque.conta_fk
14. 0.019 0.019 ↑ 1.0 1 1

Index Scan using idx_tb_produto_codigo on sigest.tb_produto produto (cost=0.28..2.50 rows=1 width=8) (actual time=0.015..0.019 rows=1 loops=1)

  • Output: produto.id, produto.produto_corporativo_fk, produto.seguro_fk, produto.sobre_taxa_fk, produto.retencao_tributo_fk, produto.codigo, produto.nome_produto_corporativo, produto.nome, produto.nomenclatura_comum_mercosul, produto.sacaria, produto.peso, produto.safra, produto.umidade, produto.pgpm, produto.controla_validade, produto.controla_ean, produto.rendimento_minimo, produto.id_antigo, produto.uf_antigo, produto.codigo_servico_fk, produto.servico, produto.tipo_servico, produto.unidade_medida_servico, produto.descricao_unidade_cobranca, produto.fator_conversao_unidade_cobranca
  • Index Cond: ((produto.codigo)::text = '000220002'::text)
  • Filter: ("substring"((produto.codigo)::text, 1, 5) = '00022'::text)
15. 14.911 6,361.806 ↓ 9.0 108 1

Bitmap Heap Scan on sigest.tb_estoque estoque (cost=275.09..2,286.87 rows=12 width=28) (actual time=4,552.767..6,361.806 rows=108 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
  • Recheck Cond: ((estoque.produto_fk = produto.id) AND (estoque.codigo_cda IS NOT NULL))
  • Filter: ((SubPlan 1) <> '0'::numeric)
  • Rows Removed by Filter: 3124
  • Heap Blocks: exact=703
16. 0.050 2.479 ↓ 0.0 0 1

BitmapAnd (cost=275.09..275.09 rows=12 width=0) (actual time=2.478..2.479 rows=0 loops=1)

17. 0.449 0.449 ↓ 14.0 3,279 1

Bitmap Index Scan on idx_tb_estoque_produto_fk (cost=0.00..3.28 rows=235 width=0) (actual time=0.449..0.449 rows=3,279 loops=1)

  • Index Cond: (estoque.produto_fk = produto.id)
18. 1.980 1.980 ↑ 1.0 24,458 1

Bitmap Index Scan on idx_tb_estoque_codigo_cda_text (cost=0.00..265.46 rows=24,485 width=0) (actual time=1.979..1.980 rows=24,458 loops=1)

  • Index Cond: (estoque.codigo_cda IS NOT NULL)
19.          

SubPlan (forBitmap Heap Scan)

20. 16.160 6,344.416 ↑ 1.0 1 3,232

Limit (cost=166.53..166.54 rows=1 width=21) (actual time=1.960..1.963 rows=1 loops=3,232)

  • Output: tb_kardex.saldo_quantidade, tb_kardex.data, tb_kardex.id
21. 2,291.488 6,328.256 ↑ 60.0 1 3,232

Sort (cost=166.53..166.68 rows=60 width=21) (actual time=1.957..1.958 rows=1 loops=3,232)

  • 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
22. 4,036.768 4,036.768 ↓ 12.2 735 3,232

Index Scan using idx_tb_kardex_estoque_fk on sigest.tb_kardex (cost=0.43..166.23 rows=60 width=21) (actual time=0.015..1.249 rows=735 loops=3,232)

  • 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-08 00:00:00'::timestamp without time zone) AND (tb_kardex.tipo <> '9'::bpchar))
  • Rows Removed by Filter: 159
23. 0.018 0.018 ↑ 1.0 1 2

Index Only Scan using pk_tb_fonte on sigest.tb_fonte fonte (cost=0.13..0.27 rows=1 width=8) (actual time=0.009..0.009 rows=1 loops=2)

  • Output: fonte.id
  • Index Cond: (fonte.id = conta.fonte_fk)
  • Heap Fetches: 0
24. 0.024 0.024 ↑ 1.0 1 2

Index Only Scan using idx_cnpj_id_programa_fk on sigest.tb_cnpj cnpj (cost=0.27..0.53 rows=1 width=16) (actual time=0.012..0.012 rows=1 loops=2)

  • Output: cnpj.id, cnpj.programa_fk
  • Index Cond: ((cnpj.id = conta.cnpj_fk) AND (cnpj.programa_fk = 2))
  • Heap Fetches: 2
25. 0.012 0.012 ↑ 1.0 1 2

Index Only Scan using pk_tb_atividade on sigest.tb_atividade atividade (cost=0.14..0.27 rows=1 width=8) (actual time=0.006..0.006 rows=1 loops=2)

  • Output: atividade.id
  • Index Cond: (atividade.id = conta.atividade_fk)
  • Heap Fetches: 0
26. 0.026 0.026 ↑ 1.0 1 2

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

  • Output: programa.id, programa.codigo, programa.nome, programa.descricao
  • Filter: (programa.id = 2)
  • Rows Removed by Filter: 3
27. 160.836 160.836 ↑ 1.0 1 2

Foreign Scan on public.vw_armazem_dados_basicos view_armazem_dados_basicos (cost=6.41..29.68 rows=1 width=132) (actual time=80.415..80.418 rows=1 loops=2)

  • Output: view_armazem_dados_basicos.idarmazem, view_armazem_dados_basicos.cda, view_armazem_dados_basicos.cda_formatado, view_armazem_dados_basicos.lat, view_armazem_dados_basicos.lon, view_armazem_dados_basicos.id_meso, view_armazem_dados_basicos.nome_meso, view_armazem_dados_basicos.micro_regiao_fk, view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.idarmazenador, view_armazem_dados_basicos.armazenador, view_armazem_dados_basicos.endereco, view_armazem_dados_basicos.bairro, view_armazem_dados_basicos.idmunicipio, view_armazem_dados_basicos.municipio, view_armazem_dados_basicos.uf, view_armazem_dados_basicos.cep, view_armazem_dados_basicos.inscricao_estadual, view_armazem_dados_basicos.telefone, view_armazem_dados_basicos.celular, view_armazem_dados_basicos.fax, view_armazem_dados_basicos.codigo_empresa, view_armazem_dados_basicos.especie, view_armazem_dados_basicos.tipo, view_armazem_dados_basicos.formapiso, view_armazem_dados_basicos.situacao, view_armazem_dados_basicos.cap, view_armazem_dados_basicos.polocompra, view_armazem_dados_basicos.polosatelite, view_armazem_dados_basicos.contratoativo, view_armazem_dados_basicos.status
  • Remote SQL: SELECT cda, cnpj_cpf, armazenador FROM public.vw_armazem_dados_basicos WHERE ((NOT polocompra)) AND ((status = 'ATIVO'::text)) AND (($1::character varying(11) = cda))
Planning time : 177.357 ms
Execution time : 6,530.295 ms