Discussion:
[pgbr-geral] Ajuda com SELECT
Antonio Cesar
2017-11-02 11:44:44 UTC
Permalink
Bom dia,

Estou com esse comando com uma percima peformace.

OBs Tava funcionando normal de uma hora para outra ficou muito lento.

"Limit (cost=0.26..117.46 rows=100 width=385)"
" -> Nested Loop (cost=0.26..36017.81 rows=30730 width=385)"
" -> Merge Join (cost=0.26..27384.58 rows=30730 width=389)"
" Merge Cond: (its.codigo = ip.codigo_item)"
" Join Filter: (its.codigo_unidade = ip.codigo_unidade)"
" -> Index Scan using pk_item_codigo on item its
(cost=0.00..8508.14 rows=33680 width=385)"
" Filter: ((tipo_item <> ALL ('{07,08}'::bpchar[]))
AND (ativo = 'S'::bpchar))"
" -> Index Scan using pk_item_preco_codigo on item_preco
ip (cost=0.00..18258.11 rows=56550 width=8)"
" Index Cond: ((codigo_empresa = 2) AND
(codigo_negocio = 1))"
" Filter: ((ativo)::bpchar = 'S'::bpchar)"
" -> Index Only Scan using pk_unidade_codigo on unidade un
(cost=0.00..0.27 rows=1 width=4)"
" Index Cond: (codigo = ip.codigo_unidade)"

Servidor:

mem 32GB

Linux debian

Processador 8 Nucle

Marca DELL

Conexao simutaneo 18
Daniel Luiz da Silva
2017-11-03 10:19:40 UTC
Permalink
De: "Antonio Cesar" <***@gmail.com>
Para: "Comunidade PostgreSQL Brasileira" <pgbr-***@listas.postgresql.org.br>
Enviadas: Quinta-feira, 2 de novembro de 2017 9:44:44
Assunto: [pgbr-geral] Ajuda com SELECT

Bom dia,

Estou com esse comando com uma percima peformace.

OBs Tava funcionando normal de uma hora para outra ficou muito lento.

"Limit (cost=0.26..117.46 rows=100 width=385)"
" -> Nested Loop (cost=0.26..36017.81 rows=30730 width=385)"
" -> Merge Join (cost=0.26..27384.58 rows=30730 width=389)"
" Merge Cond: (its.codigo = ip.codigo_item)"
" Join Filter: (its.codigo_unidade = ip.codigo_unidade)"
" -> Index Scan using pk_item_codigo on item its
(cost=0.00..8508.14 rows=33680 width=385)"
" Filter: ((tipo_item <> ALL ('{07,08}'::bpchar[]))
AND (ativo = 'S'::bpchar))"
" -> Index Scan using pk_item_preco_codigo on item_preco
ip (cost=0.00..18258.11 rows=56550 width=8)"
" Index Cond: ((codigo_empresa = 2) AND
(codigo_negocio = 1))"
" Filter: ((ativo)::bpchar = 'S'::bpchar)"
" -> Index Only Scan using pk_unidade_codigo on unidade un
(cost=0.00..0.27 rows=1 width=4)"
" Index Cond: (codigo = ip.codigo_unidade)"

Servidor:

mem 32GB

Linux debian

Processador 8 Nucle

Marca DELL

Conexao simutaneo 18


_______________________________________________
pgbr-geral mailing list
pgbr-***@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
de Banco de Dados
Departamento Data Center
***@ipm.com.br
48 3031-7500

Antonio,

Utiliza esse site [1] para conseguir analisar performance de query.

Sobre a query o que mais consome é no índice pk_item_preco_codigo e realizar o merge entre os registros. Mas o que seria lento para você? Essa consulta movimenta poucos registros, acredito que demora mais de 1 segundo para executar, mas caso demore terá que validar se o caminho seguido é bom suficiente para seu negócio.

[1] http://tatiyants.com/pev/#/plans/new

Loading...