Olá, Você tem as estatísticas do seu banco atualizadas, isto é, o comando ANALYZE é executado com qual periodicidade?
Esta sua tabela tem muitas operações de UPDATE e DELETE? De quanto em quanto tempo você executa um processo de VACUUM? O autovacuum está habilitado? 2009/8/12 Nei Rauni Santos <[email protected]> > Dae pessoal, tenho uma consulta entre 2 tabelas que está demorando bastante > tempo, gostaria da ajuda de alguém para analisar o resultado do explain > analize. > > minha query: > > select d.description_type_id, t.lang, count( t.id ) from hotel_description > as d > inner join hotel_description_translation as t ON ( d.id = t.id ) > group by d.description_type_id, t.lang > > o pgadmin3 diz que demora 14714 ms para executar essa query, o resultado > dela é esse: > > 4;"pt_BR";12183 > 3;"pt";13326 > 8;"pt_BR";58957 > 5;"en";27687 > 7;"en";20041 > 11;"en";61 > 6;"pt";24534 > 2;"pt_BR";11559 > 1;"pt_BR";10024 > 3;"en";33032 > 6;"en";59706 > 7;"pt";10176 > 11;"pt";29 > 5;"pt";4061 > 4;"en";28612 > 8;"en";59726 > 2;"pt";11559 > 1;"pt";10024 > 5;"pt_BR";4061 > 7;"pt_BR";10176 > 11;"pt_BR";29 > 1;"en";23219 > 2;"en";26297 > 8;"pt";58957 > 3;"pt_BR";13326 > 4;"pt";12183 > 6;"pt_BR";24534 > > > estrutura das minhas tabelas: > > CREATE TABLE hotel_description_translation > ( > id integer NOT NULL, > lang character varying(5) NOT NULL, > created_at timestamp without time zone, > updated_at timestamp without time zone, > description text NOT NULL, > CONSTRAINT pkhotel_description_i18n PRIMARY KEY (id, lang), > CONSTRAINT fk_hotel_description_i18n_hotel_description FOREIGN KEY (id) > REFERENCES hotel_description (id) MATCH SIMPLE > ON UPDATE NO ACTION ON DELETE NO ACTION > ) > WITH (OIDS=FALSE); > > CREATE TABLE hotel_description > ( > description_type_id integer NOT NULL, > hotel_id integer NOT NULL, > id serial NOT NULL, > CONSTRAINT pkhotel_description PRIMARY KEY (id)) > WITH (OIDS=FALSE); > > > quantidade de registros > > select count(*) from hotel_description; --327819 rows > select count(*) from hotel_description_translation; --568079 rows > > > o explain analyse resultou nisso: > > > "HashAggregate (cost=88792.79..88793.09 rows=24 width=11)" > " -> Hash Join (cost=10263.93..84532.20 rows=568079 width=11)" > " Hash Cond: (t.id = d.id)" > " -> Seq Scan on hotel_description_translation t > (cost=0.00..57895.79 rows=568079 width=7)" > " -> Hash (cost=4885.19..4885.19 rows=327819 width=8)" > " -> Seq Scan on hotel_description d (cost=0.00..4885.19 > rows=327819 width=8)" > > > > > > se alguém puder ajudar, não sei se é possível otimizar um pouco mais isso. > > Nei > > > > > -- > Nei Rauni Santos > [email protected] > +55 41 85020985 > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > []s -- JotaComm http://jotacomm.wordpress.com http://www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
