explain.depesz.com

PostgreSQL's explain analyze made readable

Result: tlj

Settings
# exclusive inclusive rows x rows loops node
1. 0.009 6,959.375 ↓ 2.0 2 1

Unique (cost=1,065.58..1,065.59 rows=1 width=132) (actual time=6,959.367..6,959.375 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.021 6,959.366 ↓ 2.0 2 1

Sort (cost=1,065.58..1,065.58 rows=1 width=132) (actual time=6,959.364..6,959.366 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.085 6,959.345 ↓ 2.0 2 1

Group (cost=1,065.30..1,065.57 rows=1 width=132) (actual time=6,959.331..6,959.345 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,959.260 ↓ 2.0 2 1

Sort (cost=1,065.30..1,065.31 rows=1 width=100) (actual time=6,959.258..6,959.260 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.699 6,959.235 ↓ 2.0 2 1

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

  • Output: view_armazem_dados_basicos.cnpj_cpf, view_armazem_dados_basicos.armazenador
6. 0.015 6,797.500 ↓ 2.0 2 1

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

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

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

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

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

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

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

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

Nested Loop (cost=275.64..1,033.39 rows=1 width=36) (actual time=6,794.234..6,797.362 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.048 0.048 ↑ 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.024..0.048 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.833 6,795.486 ↓ 10.8 108 18

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

  • Output: estoque.codigo_cda, estoque.conta_fk
13. 0.248 6,793.653 ↓ 10.8 108 1

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

  • Output: estoque.codigo_cda, estoque.conta_fk
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.019..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. 16.076 6,793.382 ↓ 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,961.314..6,793.382 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.058 3.034 ↓ 0.0 0 1

BitmapAnd (cost=275.09..275.09 rows=12 width=0) (actual time=3.033..3.034 rows=0 loops=1)

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

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

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

SubPlan (forBitmap Heap Scan)

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

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

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

Sort (cost=60.95..61.10 rows=60 width=21) (actual time=2.090..2.090 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,269.472 4,269.472 ↓ 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.321 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 00:00:00'::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.030 0.030 ↑ 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.015 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.006..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.032 0.032 ↑ 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.016 rows=1 loops=2)

  • Output: programa.id, programa.codigo, programa.nome, programa.descricao
  • Filter: (programa.id = 2)
  • Rows Removed by Filter: 3
27. 160.036 160.036 ↑ 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.015..80.018 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 : 172.140 ms
Execution time : 6,961.043 ms