explain.depesz.com

PostgreSQL's explain analyze made readable

Result: gVWW

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

Unique (cost=1,065.58..1,065.59 rows=1 width=132) (actual time=6,878.683..6,878.692 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.024 6,878.684 ↓ 2.0 2 1

Sort (cost=1,065.58..1,065.58 rows=1 width=132) (actual time=6,878.680..6,878.684 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.078 6,878.660 ↓ 2.0 2 1

Group (cost=1,065.30..1,065.57 rows=1 width=132) (actual time=6,878.647..6,878.660 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.025 6,878.582 ↓ 2.0 2 1

Sort (cost=1,065.30..1,065.31 rows=1 width=100) (actual time=6,878.579..6,878.582 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.898 6,878.557 ↓ 2.0 2 1

Nested Loop (cost=282.59..1,065.29 rows=1 width=100) (actual time=6,794.909..6,878.557 rows=2 loops=1)

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador
6. 0.017 6,713.807 ↓ 2.0 2 1

Nested Loop (cost=276.18..1,035.60 rows=1 width=12) (actual time=6,710.644..6,713.807 rows=2 loops=1)

  • Output: estoque.codigo_cda
7. 0.011 6,713.762 ↓ 2.0 2 1

Nested Loop (cost=276.18..1,034.54 rows=1 width=20) (actual time=6,710.624..6,713.762 rows=2 loops=1)

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

Nested Loop (cost=276.04..1,034.23 rows=1 width=28) (actual time=6,710.610..6,713.739 rows=2 loops=1)

  • Output: conta.fonte_fk, estoque.codigo_cda, cnpj.programa_fk
  • Inner Unique: true
9. 0.013 6,713.716 ↓ 2.0 2 1

Nested Loop (cost=275.91..1,033.94 rows=1 width=36) (actual time=6,710.597..6,713.716 rows=2 loops=1)

  • Output: conta.atividade_fk, conta.fonte_fk, estoque.codigo_cda, cnpj.programa_fk
  • Inner Unique: true
10. 1.852 6,713.671 ↓ 2.0 2 1

Nested Loop (cost=275.64..1,033.39 rows=1 width=36) (actual time=6,710.572..6,713.671 rows=2 loops=1)

  • Output: conta.atividade_fk, conta.fonte_fk, conta.cnpj_fk, estoque.codigo_cda
  • Join Filter: (estoque.conta_fk = conta.id)
  • Rows Removed by Join Filter: 1942
11. 0.051 0.051 ↑ 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.025..0.051 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.773 6,711.768 ↓ 10.8 108 18

Materialize (cost=275.37..1,022.48 rows=10 width=20) (actual time=271.359..372.876 rows=108 loops=18)

  • Output: estoque.conta_fk, estoque.codigo_cda
13. 0.252 6,709.995 ↓ 10.8 108 1

Nested Loop (cost=275.37..1,022.43 rows=10 width=20) (actual time=4,884.435..6,709.995 rows=108 loops=1)

  • Output: estoque.conta_fk, estoque.codigo_cda
14. 0.023 0.023 ↑ 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.020..0.023 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. 13.218 6,709.720 ↓ 9.0 108 1

Bitmap Heap Scan on sigest.tb_estoque estoque (cost=275.09..1,019.81 rows=12 width=28) (actual time=4,884.407..6,709.720 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.057 3.030 ↓ 0.0 0 1

BitmapAnd (cost=275.09..275.09 rows=12 width=0) (actual time=3.029..3.030 rows=0 loops=1)

17. 0.547 0.547 ↓ 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.546..0.547 rows=3,279 loops=1)

  • Index Cond: (estoque.produto_fk = produto.id)
18. 2.426 2.426 ↑ 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=2.425..2.426 rows=24,458 loops=1)

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

SubPlan (forBitmap Heap Scan)

20. 19.392 6,693.472 ↑ 1.0 1 3,232

Limit (cost=60.95..60.95 rows=1 width=21) (actual time=2.066..2.071 rows=1 loops=3,232)

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

Sort (cost=60.95..61.10 rows=60 width=21) (actual time=2.064..2.065 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,201.600 4,201.600 ↓ 12.2 735 3,232

Index Scan using idx_tb_kardex_estoque_fk_data_tipo_armazenagem_tipo on sigest.tb_kardex (cost=0.56..60.65 rows=60 width=21) (actual time=0.014..1.300 rows=735 loops=3,232)

  • Output: tb_kardex.saldo_quantidade, tb_kardex.data, tb_kardex.id
  • Index Cond: ((tb_kardex.estoque_fk = estoque.id) AND (tb_kardex.data <= '2019-08-08 23:59:59'::timestamp without time zone) AND (tb_kardex.tipo_armazenagem = true))
  • Filter: (tb_kardex.tipo_armazenagem AND (tb_kardex.tipo <> '9'::bpchar))
  • Rows Removed by Filter: 93
23. 0.032 0.032 ↑ 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.015..0.016 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
24. 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.005..0.006 rows=1 loops=2)

  • Output: atividade.id
  • Index Cond: (atividade.id = conta.atividade_fk)
  • Heap Fetches: 0
25. 0.012 0.012 ↑ 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.005..0.006 rows=1 loops=2)

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

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

  • Output: programa.id, programa.codigo, programa.nome, programa.descricao
  • Filter: (programa.id = 2)
  • Rows Removed by Filter: 3
27. 162.852 162.852 ↑ 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=81.423..81.426 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.654 ms
Execution time : 6,880.778 ms