De: pgbr-geral-boun...@listas.postgresql.org.br
[mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de JotaComm
Enviada em: quarta-feira, 9 de junho de 2010 20:25
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Coluna do tipo Bytea em relação apresenta
-->select lento

 

Opa,

Em 9 de junho de 2010 09:12, TI <t...@batistarepresentacoes.com> escreveu:

Olá Pessoal,

Preciso de uma dica de vocês. 

Temos uma tabela com uma coluna do tipo Bytea para armazenar uma imagem de
no máximo 100k (do tipo jpg), esta tabela é uma das menores em termos de
tamanho e registros (cerca de 400), porém, notamos que de uma semana para cá
está muito lento o “select *” desta tabela, daí fizemos uma série de testes,
como avaliar se realmente todas as imagens tem o tamanho acima descrito (ou
uma monstruosidade), se poderia ser problema em disco, memória etc. 

Descartamos vários problemas e partimos para “pedir” ajuda ao PostgreSQL
através dos logs, planos, analyze, vaccuum (na ordem) e não vimos nada (pelo
menos não enxergamos). Mas, se eu fizer um “select campo1, campo2...” e
omitir da seleção o campo bytea, tenho a performance desejada.

Abaixo segue o meu cenário para tentar mostrar a vocês nossa situação:

S.O - Linux batux 2.6.28-17-server #58-Ubuntu SMP Tue Dec 1 22:13:36 UTC
2009 x86_64 GNU/Linux

PostgreSQL 8.3.9 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real
(Ubuntu 4.3.3-5ubuntu4) 4.3.3

Tamanho das bases : 

datname Base_Size

template1           4328   kB

template0           4272   kB

postgres            6356   kB

pykota             15008 MB

sap2broker      250797  GB

Tamanho das TS :

spcname Size

pg_default          144 MB

pg_global           354 kB

ts_dado           200360 GB

ts_indice           50427 GB

Tamanho da Tabela (em questão):

schemaname      tablename       registros       tamanho relkind

sap2broker      brkhrempl          339                      112 kB      r

 

Plan com todos os campos:

QUERY PLAN

Seq Scan on funcionarios  (cost=0.00..17.39 rows=339 width=479) (actual
time=0.007..0.123 rows=339 loops=1)

Total runtime: 0.191 ms

Plan omitindo o campo bytea:

QUERY PLAN

Seq Scan on funcionarios  (cost=0.00..17.39 rows=339 width=447) (actual
time=0.009..0.496 rows=339 loops=1)

Total runtime: 0.561 ms

O tempo de mostragem do resultado do “select *” é de aproximadamente 11s.

O tempo de mostragem do resultado do  “select campo1,campo2...” omitindo o
campo bytea é de aproximadamente 0.10ms

O mesmo teste foi feito no psql, front end, script.

Alguém pode me dar uma dica?


Sua consulta sempre será sem nenhuma condição no WHERE?

 

Sim, esta consulta sempre será sem nenhuma condição de Where.



Você fez a consulta filtrando por campo da sua tabela? Qual o resultado? 

 

 

Se omitirmos o campo bytea temos a performance que desejamos, ou seja
resultado satisfatório.

Obrigado,

Rubens José Rodrigues

Analista de Suporte e Processos

Broker Nestlé do Brasil S/A

Departamento de Tecnologia e Informação

(55)27-99698081 - (55)27-33996419

----------------------------------------------------------------------

Batista Coml. Log. e Representações Ltda.

 (55)27-33996400  

Rua José Ramos de Oliveira, 91 - Nossa Senhora da Penha

Vila Velha - ES - 29110-280


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



[]s
-- 
JotaComm
http://jotacomm.wordpress.com

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a