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