Re: Postgres not using array
От | André Volpato |
---|---|
Тема | Re: Postgres not using array |
Дата | |
Msg-id | 48AD80FA.30100@ecomtecnologia.com.br обсуждение исходный текст |
Ответ на | Re: Postgres not using array (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Postgres not using array
|
Список | pgsql-performance |
Tom Lane escreveu: > =?ISO-8859-1?Q?Andr=E9_Volpato?= <andre.volpato@ecomtecnologia.com.br> writes: > >> Explain output: >> HashAggregate (cost=19826.23..19826.96 rows=73 width=160) (actual >> time=11826.754..11826.754 rows=0 loops=1) >> -> Subquery Scan b2 (cost=19167.71..19817.21 rows=722 width=160) >> (actual time=11826.752..11826.752 rows=0 loops=1) >> Filter: (bds_internacoes(200805, 200806, (b2.cod)::text, >> 'qtdI'::text, 'P'::bpchar) >= 1::numeric) >> -> Limit (cost=19167.71..19248.89 rows=2165 width=48) (actual >> time=415.157..621.043 rows=28923 loops=1) >> > > So I guess the question is "what is the bds_internacoes function, and > why is it so slow?" This function is quite fast: Aggregate (cost=5.17..5.18 rows=1 width=12) (actual time=0.286..0.287 rows=1 loops=1) -> Index Scan using iinternacoes4 on internacoes (cost=0.01..5.16 rows=1 width=12) (actual time=0.273..0.273 rows=0 loops=1) Index Cond: ((((ano * 100) + mes) >= 200801) AND (((ano * 100) + mes) <= 200806) AND ((cod_benef)::text = '0005375200'::text)) Filter: (tipo_internacao = 'P'::bpchar) Total runtime: 0.343 ms The problem is that its fired up against 29K rows, wich takes the total runtime about 10s. We are guessing that a dual core 3.0GHz will beat up a quad core 2.2, at least in this environmnent with less than 4 concurrent queryes. -- []´s, ACV
В списке pgsql-performance по дате отправления: