Fabrízio, As estatísticas estão atualizadas sim, apesar de ser uma base nova rodei um analyze em todas conforme você sugeriu.
Obrigado. Em 28 de novembro de 2014 16:19, Fabrízio de Royes Mello < fabri...@timbira.com.br> escreveu: > On 28-11-2014 16:13, Ariel Alves wrote: > > Boa tarde prezados, > > > > > > Venho com mais um pedido de ajuda a vocês, estou homologando uma > aplicação > > e logo no inicio já me deparei com uma consulta muito lenta, peguei o > > resultado explain analyze, vi que a lentidão estava concentrada > > exclusivamente em um "Index Scan Backward". Apesar de está com o > resultado > > do explain não sei muito como resolver este problema. > > > > Como a base é nova (restore recente) não arrisquei nem em fazer um > reindex. > > > > O explain está na http://explain.depesz.com/s/Jiu > > > > > > Se alguém tiver alguma sugestão de configuração para transações deste > tipo > > agradeço muito. > > > > > > PLAN > > > > > > > -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Sort (cost=191.32..191.32 rows=1 width=61) (actual > > time=555232.289..555232.289 rows=0 loops=1) > > Sort Key: tp.departure_time > > Sort Method: quicksort Memory: 25kB > > -> Nested Loop (cost=8.02..191.31 rows=1 width=61) (actual > > time=555232.259..555232.259 rows=0 loops=1) > > -> Nested Loop (cost=8.02..186.13 rows=1 width=61) (actual > > time=555232.258..555232.258 rows=0 loops=1) > > -> Nested Loop (cost=8.02..183.65 rows=1 width=69) > (actual > > time=555232.257..555232.257 rows=0 loops=1) > > -> Bitmap Heap Scan on tb_trip_program tp > > (cost=8.02..181.17 rows=1 width=61) (actual time=555232.256..555232.256 > > rows=0 loops=1) > > Recheck Cond: ((program_id = 7258::bigint) AND > > (control_point_id = 13892::bigint)) > > Filter: (SubPlan 3) > > -> BitmapAnd (cost=8.02..8.02 rows=1 > width=0) > > (actual time=0.129..0.129 rows=0 loops=1) > > -> Bitmap Index Scan on > > tripprogram_programid_idx (cost=0.00..2.04 rows=89 width=0) (actual > > time=0.039..0.039 rows=74 loops=1) > > Index Cond: (program_id = > > 7258::bigint) > > -> Bitmap Index Scan on > > tripprogram_controlpointid_idx (cost=0.00..5.73 rows=434 width=0) > (actual > > time=0.087..0.087 rows=437 loops=1) > > Index Cond: (control_point_id = > > 13892::bigint) > > SubPlan 3 > > -> Subquery Scan on x (cost=0.00..172.03 > > rows=1 width=0) (actual time=15006.263..15006.263 rows=0 loops=37) > > Filter: (x.vehicle_vehicleid = > > 3883::bigint) > > -> Limit (cost=0.00..172.02 rows=1 > > width=16) (actual time=15006.260..15006.260 rows=0 loops=37) > > -> Index Scan Backward using > > vehiclebusserviceplanned_pkey on vehiclebusserviceplanned > > (cost=0.00..1971027.10 rows=11458 width=16) (actual > > time=15006.257..15006.257 rows=0 loops=37) > > Filter: ((trip_program_id > = > > tp.id) AND ((((('2014-11-28'::date)::text || ' '::text) || > > (tp.departure_time)::text))::timestamp without time zone >= > begintimestamp) > > AND ((((('2014-11-28'::date)::text || ' '::text) || > > (tp.departure_time)::text))::timestamp without time zone <= > > COALESCE(endtimestamp, (((('2014-11-28'::date)::text || ' '::text) || > > (tp.departure_time)::text))::timestamp without time zone))) > > -> Index Scan using controlpoint_pkey on > controlpoint > > (cost=0.00..2.47 rows=1 width=16) (never executed) > > Index Cond: (controlpointid = 13892::bigint) > > -> Index Scan using pattern_pkey on pattern > > (cost=0.00..2.47 rows=1 width=8) (never executed) > > Index Cond: (patternid = > > controlpoint.pattern_patternid) > > Filter: (busservice_busserviceid = 405::bigint) > > -> Index Scan using tb_program_pkey on tb_program > > (cost=0.00..2.48 rows=1 width=8) (never executed) > > Index Cond: (id = 7258::bigint) > > Filter: (('2014-11-28'::date >= (initial_term)::date) AND > > ('2014-11-28'::date <= (COALESCE(final_term, '2014-11-28 > > 14:18:13'::timestamp without time zone))::date)) > > SubPlan 1 > > -> Index Scan using executiontrip_beginningexecution_idx on > > tb_execution_trip et (cost=0.00..2.69 rows=1 width=0) (never executed) > > Index Cond: ((beginning_execution >= '2014-11-28 > > 00:00:00'::timestamp without time zone) AND (beginning_execution < > > '2014-11-29 00:00:00'::timestamp without time zone)) > > Filter: (((status_journey)::text = ANY > > ('{COMPLETA,INICIADA}'::text[])) AND (trip_program_id = tp.id)) > > SubPlan 2 > > -> Index Scan using executiontrip_beginningexecution_idx on > > tb_execution_trip et (cost=0.00..2.69 rows=1 width=8) (never executed) > > Index Cond: ((beginning_execution >= '2014-11-28 > > 00:00:00'::timestamp without time zone) AND (beginning_execution < > > '2014-11-29 00:00:00'::timestamp without time zone)) > > Filter: ((status_journey)::text = ANY > > ('{COMPLETA,INICIADA}'::text[])) > > Total runtime: 555232.626 ms > > (37 rows) > > > > As estatísticas estão atualizadas? Tentou executar antes um ANALYZE nas > tabelas envolvidas para garantir que não são estatísticas obsoletas ou > inexistentes? > > -- > Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ > PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento > > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- José Ariel Ferreira Alves arielalves...@gmail.com ariel.al...@msn.com
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral